diff --git a/.gitignore b/.gitignore index 153c9335..a89f7401 100644 --- a/.gitignore +++ b/.gitignore @@ -1,29 +1,11 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar +# Maven # +target/ -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws +# IDEA # +.idea/ *.iml -*.ipr -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ +# Eclipse # +.settings/ +.classpath +.project \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 5f273ce5..00000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [2019-2023] [macrozheng] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/README.md b/README.md index ca06d9cd..699e0fb2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # mall学习教程 -

公众号 交流 @@ -10,29 +9,50 @@ ## 简介 -mall学习教程,架构、业务、技术要点全方位解析。mall项目(60k+star)是一套电商系统,使用现阶段主流技术实现。涵盖了SpringBoot、MyBatis、Elasticsearch、RabbitMQ、Redis、MongoDB、Mysql等技术,采用Docker容器化部署。 +mall学习教程,架构、业务、技术要点全方位解析。mall项目(60k+star)是一套电商系统,使用现阶段主流技术实现。涵盖了SpringBoot、MyBatis、Elasticsearch、RabbitMQ、Redis、MongoDB、MySQL等技术,采用Docker容器化部署。 + +## 教程网站 + +- 文档教程:[https://www.macrozheng.com](https://www.macrozheng.com) +- 视频教程:[https://www.macrozheng.com/video/](https://www.macrozheng.com/video/) ## 项目地址 -- 后台项目:[https://github.com/macrozheng/mall](https://github.com/macrozheng/mall) -- 前端项目:[https://github.com/macrozheng/mall-admin-web](https://github.com/macrozheng/mall-admin-web) -- 微服务项目:[https://github.com/macrozheng/mall-swarm](https://github.com/macrozheng/mall-swarm) +### Github -## 更好的阅读体验 +- 后端项目:[https://github.com/macrozheng/mall](https://github.com/macrozheng/mall) +- 后台管理系统项目:[https://github.com/macrozheng/mall-admin-web](https://github.com/macrozheng/mall-admin-web) +- 前台商城项目:[https://github.com/macrozheng/mall-app-web](https://github.com/macrozheng/mall-app-web) +- mall学习教程示例代码:[https://github.com/macrozheng/mall-learning](https://github.com/macrozheng/mall-learning) -文档地址:[https://www.macrozheng.com](https://www.macrozheng.com) +### Gitee + +- 后端项目:[https://gitee.com/macrozheng/mall](https://gitee.com/macrozheng/mall) +- 后台管理系统项目:[https://gitee.com/macrozheng/mall-admin-web](https://gitee.com/macrozheng/mall-admin-web) +- 前台商城项目:[https://gitee.com/macrozheng/mall-app-web](https://gitee.com/macrozheng/mall-app-web) +- mall学习教程示例代码:[https://gitee.com/macrozheng/mall-learning](https://gitee.com/macrozheng/mall-learning) ## 序章 -> 项目架构及数据库概览,推荐一些项目学习所需知识点。 +> 对mall项目的架构、业务及学习思路进行介绍。 + +- [mall项目架构及功能概览](https://www.macrozheng.com/mall/foreword/mall_foreword_01.html) +- [mall项目核心功能演示](https://www.macrozheng.com/mall/foreword/mall_foreword_02.html) +- [mall项目学习所需知识点](https://www.macrozheng.com/mall/foreword/mall_foreword_03.html) +- [mall项目学习思路及课程介绍](https://www.macrozheng.com/mall/foreword/mall_foreword_04.html) + +## 快速开始 -- [mall架构及功能概览](https://www.macrozheng.com/mall/foreword/mall_foreword_01.html) -- [mall学习所需知识点(推荐资料)](https://www.macrozheng.com/mall/foreword/mall_foreword_02.html) +> 对mall项目的前后端开发环境搭建进行讲解。 + +- [mall项目后端开发环境搭建](https://www.macrozheng.com/mall/start/mall_deploy_windows.html) +- [mall项目前端开发环境搭建](https://www.macrozheng.com/mall/start/mall_deploy_web.html) ## 架构篇 -> 手把手教你搭建一个mall在使用的项目骨架,带你逐步熟悉mall所使用的技术栈。 +> 循序渐进带大家搭建一个mall项目在使用的脚手架,学习主流Java技术栈。涵盖SpringBoot、MyBatis、Lombok、Hutool、Swagger、Redis、SpringSecurity、Elasticsearch、MongoDB、RabbitMQ、MinIO等技术。 +- [mall项目架构篇介绍](https://www.macrozheng.com/mall/architect/mall_arch_overview.html) - [mall整合SpringBoot+MyBatis搭建基本骨架](https://www.macrozheng.com/mall/architect/mall_arch_01.html) - [mall整合Swagger-UI实现在线API文档](https://www.macrozheng.com/mall/architect/mall_arch_02.html) - [mall整合Redis实现缓存功能](https://www.macrozheng.com/mall/architect/mall_arch_03.html) @@ -46,9 +66,12 @@ mall学习教程,架构、业务、技术要点全方位解析。mall项目( ## 业务篇 -> 全面解析mall中使用的数据库表结构,带你熟悉mall项目中的电商业务。 +> mall项目电商业务与技术实现全方位解析,涵盖权限模块、商品模块、订单模块、营销模块、会员模块的解析。 -- [mall数据库表结构概览](https://www.macrozheng.com/mall/database/mall_database_overview.html) +- [mall项目后台管理系统业务介绍](https://www.macrozheng.com/mall/database/mall_business_overview.html) +- [mall项目前台商城系统业务介绍](https://www.macrozheng.com/mall/database/mall_business_app_overview.html) +- [mall项目开发设计思路](https://www.macrozheng.com/mall/database/mall_dev_design.html) +- [权限模块数据库表解析](https://www.macrozheng.com/mall/database/mall_ums_01.html) - [商品模块数据库表解析(一)](https://www.macrozheng.com/mall/database/mall_pms_01.html) - [商品模块数据库表解析(二)](https://www.macrozheng.com/mall/database/mall_pms_02.html) - [订单模块数据库表解析(一)](https://www.macrozheng.com/mall/database/mall_oms_01.html) @@ -59,6 +82,27 @@ mall学习教程,架构、业务、技术要点全方位解析。mall项目( - [营销模块数据库表解析(三)](https://www.macrozheng.com/mall/database/mall_sms_03.html) - [权限管理功能设计与优化](https://www.macrozheng.com/mall/database/mall_permission.html) +## 部署篇 + +> 实现mall项目的Docker容器化部署和Jenkins自动化部署,同时学习Linux、Docker、Jenkins等技术。 + +- [mall项目部署篇介绍](https://www.macrozheng.com/mall/deploy/mall_deploy_overview.html) +- [使用虚拟机安装Linux](https://www.macrozheng.com/mall/deploy/linux_install.html) +- [Linux常用命令](https://www.macrozheng.com/mall/deploy/linux_command.html) +- [Linux防火墙Firewall和Iptables的使用](https://www.macrozheng.com/mall/deploy/linux_firewall.html) +- [Docker环境安装及常用命令](https://www.macrozheng.com/mall/deploy/docker_command.html) +- [使用Maven插件为SpringBoot应用构建Docker镜像](https://www.macrozheng.com/mall/deploy/docker_maven.html) +- [使用Dockerfile为SpringBoot应用构建Docker镜像](https://www.macrozheng.com/mall/deploy/docker_file.html) +- [使用Docker Compose部署SpringBoot应用](https://www.macrozheng.com/mall/deploy/docker_compose.html) +- [MySQL常用命令](https://www.macrozheng.com/mall/deploy/mysql.html) +- [mall在Linux环境下的部署(基于Docker容器)](https://www.macrozheng.com/mall/deploy/mall_deploy_docker.html) +- [mall在Linux环境下的部署(基于Docker Compose)](https://www.macrozheng.com/mall/deploy/mall_deploy_docker_compose.html) +- [在Linux上搭建Git服务](https://www.macrozheng.com/mall/deploy/gogs_start.html) +- [使用Jenkins一键打包部署SpringBoot应用](https://www.macrozheng.com/mall/deploy/jenkins.html) +- [使用Jenkins一键打包部署前端应用](https://www.macrozheng.com/mall/deploy/jenkins_vue.html) +- [mall使用Jenkins实现自动化部署](https://www.macrozheng.com/mall/deploy/mall_deploy_jenkins.html) + + ## 技术要点篇 > mall中一些功能的技术要点解析,这些技术要点和业务结合地比较紧密。 @@ -81,35 +125,12 @@ mall学习教程,架构、业务、技术要点全方位解析。mall项目( - [Elasticsearch 升级 7.x 版本后,我感觉掉坑里了!](https://www.macrozheng.com/mall/technology/elasticsearch_upgrade.html) - [搞定Mall项目中的权限管理功能,弄懂这些问题就妥了!](https://www.macrozheng.com/mall/technology/mall_permission_question.html) -## 部署篇 - -> mall开发及生产环境的搭建,涵盖Windows、Docker、K8S及自动化部署。 - -- [mall在Windows环境下的部署](https://www.macrozheng.com/mall/deploy/mall_deploy_windows.html) -- [mall在Linux环境下的部署(基于Docker容器)](https://www.macrozheng.com/mall/deploy/mall_deploy_docker.html) -- [mall在Linux环境下的部署(基于Docker Compose)](https://www.macrozheng.com/mall/deploy/mall_deploy_docker_compose.html) -- [mall前端项目的安装与部署](https://www.macrozheng.com/mall/deploy/mall_deploy_web.html) -- [mall-swarm在Windows环境下的部署](https://www.macrozheng.com/mall/deploy/mall_swarm_deploy_windows.html) -- [mall-swarm在Linux环境下的部署(基于Docker容器)](https://www.macrozheng.com/mall/deploy/mall_swarm_deploy_docker.html) -- [mall使用Jenkins实现自动化部署](https://www.macrozheng.com/mall/deploy/mall_deploy_jenkins.html) -- [mall-swarm使用Jenkins实现自动化部署](https://www.macrozheng.com/mall/deploy/mall_swarm_deploy_jenkins.html) -- [mall-swarm微服务项目在K8S下的实践!](https://www.macrozheng.com/mall/deploy/mall_swarm_deploy_k8s.html) - ## 参考篇 > mall相关技术的参考教程,每篇都是可以独立学习的教程,学习过程中遇到不懂的知识点可以从这里找找。 -- [开发者必备Mysql命令](https://www.macrozheng.com/mall/reference/mysql.html) -- [还在百度Linux命令?推荐一套我用起来特顺手的命令!](https://www.macrozheng.com/mall/reference/linux_command.html) -- [Linux防火墙Firewall和Iptables的使用](https://www.macrozheng.com/mall/reference/linux_firewall.html) -- [还在百度Docker命令?推荐一套我用起来特顺手的命令!](https://www.macrozheng.com/mall/reference/docker_command.html) -- [使用Maven插件为SpringBoot应用构建Docker镜像](https://www.macrozheng.com/mall/reference/docker_maven.html) -- [使用DockerFile为SpringBoot应用构建Docker镜像](https://www.macrozheng.com/mall/reference/docker_file.html) -- [使用Docker Compose部署SpringBoot应用](https://www.macrozheng.com/mall/reference/docker_compose.html) - [Hutool中那些常用的工具类和方法 ](https://www.macrozheng.com/mall/reference/hutool_start.html) - [Nginx的这些妙用,你肯定有不知道的!](https://www.macrozheng.com/mall/reference/nginx.html) -- [使用Jenkins一键打包部署SpringBoot应用,就是这么6!](https://www.macrozheng.com/mall/reference/jenkins.html) -- [使用Jenkins一键打包部署前端应用,就是这么6!](https://www.macrozheng.com/mall/reference/jenkins_vue.html) - [Github标星19K+Star,10分钟自建对象存储服务!](https://www.macrozheng.com/mall/reference/minio.html) - [Spring Data Redis 最佳实践!](https://www.macrozheng.com/mall/reference/spring_data_redis.html) - [Elasticsearch快速入门,掌握这些刚刚好!](https://www.macrozheng.com/mall/reference/elasticsearch_start.html) @@ -127,7 +148,6 @@ mall学习教程,架构、业务、技术要点全方位解析。mall项目( - [解放双手!MyBatis官方代码生成工具给力!](https://www.macrozheng.com/mall/reference/mybatis_generator_start.html) - [Lombok有啥牛皮的?SpringBoot和IDEA官方都要支持它!](https://www.macrozheng.com/mall/reference/lombok_start.html) - ## 公众号 学习不走弯路,关注公众号「**macrozheng**」,回复「**学习路线**」,获取mall项目专属学习路线! diff --git a/document/canal-config/adapter/application.yml b/document/canal-config/adapter/application.yml deleted file mode 100644 index 4d570af1..00000000 --- a/document/canal-config/adapter/application.yml +++ /dev/null @@ -1,65 +0,0 @@ -server: - port: 8081 -spring: - jackson: - date-format: yyyy-MM-dd HH:mm:ss - time-zone: GMT+8 - default-property-inclusion: non_null - -canal.conf: - mode: tcp # 客户端的模式,可选tcp kafka rocketMQ - flatMessage: true # 扁平message开关, 是否以json字符串形式投递数据, 仅在kafka/rocketMQ模式下有效 - zookeeperHosts: # 对应集群模式下的zk地址 - syncBatchSize: 1000 # 每次同步的批数量 - retries: 0 # 重试次数, -1为无限重试 - timeout: # 同步超时时间, 单位毫秒 - accessKey: - secretKey: - consumerProperties: - # canal tcp consumer - canal.tcp.server.host: 127.0.0.1:11111 #设置canal-server的地址 - canal.tcp.zookeeper.hosts: - canal.tcp.batch.size: 500 - canal.tcp.username: - canal.tcp.password: - # kafka consumer - kafka.bootstrap.servers: 127.0.0.1:9092 - kafka.enable.auto.commit: false - kafka.auto.commit.interval.ms: 1000 - kafka.auto.offset.reset: latest - kafka.request.timeout.ms: 40000 - kafka.session.timeout.ms: 30000 - kafka.isolation.level: read_committed - kafka.max.poll.records: 1000 - # rocketMQ consumer - rocketmq.namespace: - rocketmq.namesrv.addr: 127.0.0.1:9876 - rocketmq.batch.size: 1000 - rocketmq.enable.message.trace: false - rocketmq.customized.trace.topic: - rocketmq.access.channel: - rocketmq.subscribe.filter: - # rabbitMQ consumer - rabbitmq.host: - rabbitmq.virtual.host: - rabbitmq.username: - rabbitmq.password: - rabbitmq.resource.ownerId: - - srcDataSources: # 源数据库配置 - defaultDS: - url: jdbc:mysql://127.0.0.1:3306/canal_test?useUnicode=true - username: canal - password: canal - canalAdapters: # 适配器列表 - - instance: example # canal实例名或者MQ topic名 - groups: # 分组列表 - - groupId: g1 # 分组id, 如果是MQ模式将用到该值 - outerAdapters: - - name: logger # 日志打印适配器 - - name: es7 # ES同步适配器 - hosts: 127.0.0.1:9200 # ES连接地址 - properties: - mode: rest # 模式可选transport(9300) 或者 rest(9200) - # security.auth: test:123456 # only used for rest mode - cluster.name: elasticsearch # ES集群名称 \ No newline at end of file diff --git a/document/canal-config/adapter/product.yml b/document/canal-config/adapter/product.yml deleted file mode 100644 index bd96d0a9..00000000 --- a/document/canal-config/adapter/product.yml +++ /dev/null @@ -1,16 +0,0 @@ -dataSourceKey: defaultDS # 源数据源的key, 对应上面配置的srcDataSources中的值 -destination: example # canal的instance或者MQ的topic -groupId: g1 # 对应MQ模式下的groupId, 只会同步对应groupId的数据 -esMapping: - _index: canal_product # es 的索引名称 - _id: _id # es 的_id, 如果不配置该项必须配置下面的pk项_id则会由es自动分配 - sql: "SELECT - p.id AS _id, - p.title, - p.sub_title, - p.price, - p.pic - FROM - product p" # sql映射 - etlCondition: "where a.c_time>={}" #etl的条件参数 - commitBatch: 3000 # 提交批大小 \ No newline at end of file diff --git a/document/canal-config/admin/application.yml b/document/canal-config/admin/application.yml deleted file mode 100644 index 2b94e94d..00000000 --- a/document/canal-config/admin/application.yml +++ /dev/null @@ -1,21 +0,0 @@ -server: - port: 8089 -spring: - jackson: - date-format: yyyy-MM-dd HH:mm:ss - time-zone: GMT+8 - -spring.datasource: - address: 127.0.0.1:3306 - database: canal_manager - username: root - password: root - driver-class-name: com.mysql.jdbc.Driver - url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false - hikari: - maximum-pool-size: 30 - minimum-idle: 1 - -canal: - adminUser: admin - adminPasswd: admin \ No newline at end of file diff --git a/document/canal-config/server/canal_local.properties b/document/canal-config/server/canal_local.properties deleted file mode 100644 index 9b1734a7..00000000 --- a/document/canal-config/server/canal_local.properties +++ /dev/null @@ -1,11 +0,0 @@ -# register ip -canal.register.ip = - -# canal admin config -canal.admin.manager = 127.0.0.1:8089 -canal.admin.port = 11110 -canal.admin.user = admin -canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 -# admin auto register -canal.admin.register.auto = true -canal.admin.register.cluster = \ No newline at end of file diff --git a/document/canal-config/server/canal_test.sql b/document/canal-config/server/canal_test.sql deleted file mode 100644 index cc301cf4..00000000 --- a/document/canal-config/server/canal_test.sql +++ /dev/null @@ -1,33 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : linux-local - Source Server Type : MySQL - Source Server Version : 50728 - Source Host : 192.168.5.94:3306 - Source Schema : canal_test - - Target Server Type : MySQL - Target Server Version : 50728 - File Encoding : 65001 - - Date: 23/10/2020 17:16:07 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for product --- ---------------------------- -DROP TABLE IF EXISTS `product`; -CREATE TABLE `product` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `sub_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `price` decimal(10, 2) NULL DEFAULT NULL, - `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/document/canal-config/server/instance.properties b/document/canal-config/server/instance.properties deleted file mode 100644 index c41affe0..00000000 --- a/document/canal-config/server/instance.properties +++ /dev/null @@ -1,58 +0,0 @@ -################################################# -## mysql serverId , v1.0.26+ will autoGen -# canal.instance.mysql.slaveId=0 - -# enable gtid use true/false -canal.instance.gtidon=false - -# position info -canal.instance.master.address=127.0.0.1:3306 -canal.instance.master.journal.name= -canal.instance.master.position= -canal.instance.master.timestamp= -canal.instance.master.gtid= - -# rds oss binlog -canal.instance.rds.accesskey= -canal.instance.rds.secretkey= -canal.instance.rds.instanceId= - -# table meta tsdb info -canal.instance.tsdb.enable=true -#canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb -#canal.instance.tsdb.dbUsername=canal -#canal.instance.tsdb.dbPassword=canal - -#canal.instance.standby.address = -#canal.instance.standby.journal.name = -#canal.instance.standby.position = -#canal.instance.standby.timestamp = -#canal.instance.standby.gtid= - -# username/password -canal.instance.dbUsername=canal -canal.instance.dbPassword=canal -canal.instance.connectionCharset = UTF-8 -# enable druid Decrypt database password -canal.instance.enableDruid=false -#canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ== - -# table regex -canal.instance.filter.regex=.*\\..* -# table black regex -canal.instance.filter.black.regex=mysql\\.slave_.* -# table field filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2) -#canal.instance.filter.field=test1.t_product:id/subject/keywords,test2.t_company:id/name/contact/ch -# table field black filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2) -#canal.instance.filter.black.field=test1.t_product:subject/product_image,test2.t_company:id/name/contact/ch - -# mq config -canal.mq.topic=example -# dynamic topic route by schema or table regex -#canal.mq.dynamicTopic=mytest1.user,mytest2\\..*,.*\\..* -canal.mq.partition=0 -# hash partition config -#canal.mq.partitionsNum=3 -#canal.mq.partitionHash=test.table:id^name,.*\\..* -#canal.mq.dynamicTopicPartitionNum=test.*:4,mycanal:6 -################################################# diff --git a/document/fluentd/docker-compose-efk.yml b/document/fluentd/docker-compose-efk.yml deleted file mode 100644 index 1c06260e..00000000 --- a/document/fluentd/docker-compose-efk.yml +++ /dev/null @@ -1,47 +0,0 @@ -version: '3' -services: - elasticsearch: - image: elasticsearch:6.4.0 - container_name: efk-elasticsearch - user: root - environment: - - "cluster.name=elasticsearch" #设置集群名称为elasticsearch - - "discovery.type=single-node" #以单一节点模式启动 - - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小 - - TZ=Asia/Shanghai - volumes: - - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载 - - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载 - ports: - - 9200:9200 - - 9300:9300 - kibana: - image: kibana:6.4.0 - container_name: efk-kibana - links: - - elasticsearch:es #可以用es这个域名访问elasticsearch服务 - depends_on: - - elasticsearch #kibana在elasticsearch启动之后再启动 - environment: - - "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址 - - TZ=Asia/Shanghai - ports: - - 5601:5601 - fluentd: - image: fluent/fluentd:v1.10 - container_name: efk-fluentd - user: root - environment: - - TZ=Asia/Shanghai - volumes: - - /mydata/fluentd/log:/fluentd/log - - /mydata/fluentd/fluent.conf:/fluentd/etc/fluent.conf - depends_on: - - elasticsearch #kibana在elasticsearch启动之后再启动 - links: - - elasticsearch:es #可以用es这个域名访问elasticsearch服务 - ports: - - 24221:24221 - - 24222:24222 - - 24223:24223 - - 24224:24224 \ No newline at end of file diff --git a/document/fluentd/fluent-default.conf b/document/fluentd/fluent-default.conf deleted file mode 100644 index 24a37b57..00000000 --- a/document/fluentd/fluent-default.conf +++ /dev/null @@ -1,33 +0,0 @@ - - @type forward - @id input1 - @label @mainstream - port 24224 - - - - @type stdout - - - diff --git a/document/fluentd/fluent.conf b/document/fluentd/fluent.conf deleted file mode 100644 index 84ed22f3..00000000 --- a/document/fluentd/fluent.conf +++ /dev/null @@ -1,66 +0,0 @@ - - @type tcp - @id debug-input - port 24221 - tag debug - - @type json - - - - - @type tcp - @id error-input - port 24222 - tag error - - @type json - - - - - @type tcp - @id business-input - port 24223 - tag business - - @type json - - - - - @type tcp - @id record-input - port 24224 - tag record - - @type json - - - - - @type parser - key_name message - reserve_data true - remove_key_name_field true - - @type json - - - - - @type stdout - output_type json - - - - @type elasticsearch - host 192.168.3.101 - port 9200 - type_name docker - logstash_format true - logstash_prefix docker-${tag}-logs - logstash_dateformat %Y-%m-%d - flush_interval 5s - include_tag_key true - diff --git a/document/json/localThemeList.json b/document/json/localThemeList.json deleted file mode 100644 index 1fcc944f..00000000 --- a/document/json/localThemeList.json +++ /dev/null @@ -1,462 +0,0 @@ -[ - { - "themeId": "1", - "itemId": null, - "name": "橙心", - "cover": "https://files.mdnice.com/pic/9322d897-85d5-4be1-9c9d-c392d4d39bff.png", - "css": "/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n}\n/* 一级标题 */\n#nice h1 {\n}\n/* 一级标题内容 */\n#nice h1 .content {\n}\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n/* 二级标题 */\n#nice h2 {\n border-bottom: 2px solid rgb(239, 112, 96);\n font-size: 1.3em;\n}\n/* 二级标题内容 */\n#nice h2 .content {\n display: inline-block;\n font-weight: bold;\n background: rgb(239, 112, 96);\n color: #ffffff;\n padding: 3px 10px 1px;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n margin-right: 3px;\n}\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n display: inline-block;\n content: \" \";\n vertical-align: bottom;\n border-bottom: 36px solid #efebe9;\n border-right: 20px solid transparent;\n}\n/* 三级标题 */\n#nice h3 {\n}\n/* 三级标题内容 */\n#nice h3 .content {\n}\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice .multiquote-1 {\n border-left-color: rgb(239, 112, 96);\n background: #fff9f9;\n}\n/* 引用文字 */\n#nice .multiquote-1 p {\n}\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: rgb(239, 112, 96);\n border-bottom: 1px solid rgb(239, 112, 96);\n}\n/* 加粗 */\n#nice strong {\n}\n/* 斜体 */\n#nice em {\n}\n/* 加粗斜体 */\n#nice em strong {\n}\n/* 删除线 */\n#nice del {\n}\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n}\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n/* 图片描述文字 */\n#nice figcaption {\n}\n/* 行内代码 */\n#nice p code, #nice li code {\n color: rgb(239, 112, 96);\n}\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n/* 脚注文字 */\n#nice .footnote-word {\n color: #ff3502;\n}\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(239, 112, 96);\n}\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n/* 行内公式\n */\n#nice .inline-equation svg { \n}", - "article": "https://mp.weixin.qq.com/s?__biz=MzIwNTA4NzI1Mw==&mid=2247485062&idx=1&sn=0eaa314bb165c71a8f57c8baf4226f57&source=41#wechat_redirect", - "html": null, - "exampleHtml": null, - "authorName": "zhning12", - "authorEmail": null, - "description": "橙心的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21231, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T09:57:55.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "3", - "itemId": null, - "name": "姹紫", - "cover": "https://files.mdnice.com/pic/e989865f-32c6-4201-a486-9f85fe7c2fab.png", - "css": "/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n font-size: 15px;\n letter-spacing: 0.05em;\n color:#595959\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n margin: 1em 4px;\n}\n\n/* 一级标题 */\n#nice h1 {\n margin: 1.2em 0 1em;\n padding: 0;\n font-weight: bold;\n color:#773098;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n min-height: 32px;\n line-height: 28px;\n border-bottom: solid 1px #000000;\n color: #773098;\n display: inline-block;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-color: #773098;\n padding-top: 5px;\n padding-right: 0.5em;\n padding-left: 0.5em;\n margin-bottom: -3px;\n font-size: 22px;\n margin:1em auto;\n padding: 0.5em 0;\n text-align: center;\n width: 85%;\n font-weight: bold;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 1.2em 0 1em;\n padding: 0;\n font-weight: bold;\n color:#773098;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n margin: 10px 0;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice .multiquote-1 {\n margin: 10px 5px;\n border-left: 3px solid #9654B5;\n border-right: 1px solid #9654B5;\n color: #616161;\n quotes: none;\n background:#FBF9FD\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #773098;\n border-bottom: 1px solid #773098;\n}\n\n/* 加粗 */\n#nice strong {\n color:#773098;\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n border: 1px solid #773098;\n margin: 1.5em auto;\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: #9654B5;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #773098;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #773098;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}", - "article": null, - "html": null, - "exampleHtml": null, - "authorName": "djmaxwow", - "authorEmail": null, - "description": "姹紫的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21232, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:00.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "4", - "itemId": null, - "name": "嫩青", - "cover": "https://files.mdnice.com/pic/94cff81b-a086-46aa-a70e-1b9771b67cfc.png", - "css": "/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n color: rgb(89,89,89);\n}\n\n/* 一级标题 */\n#nice h1 {\n color: rgb(89,89,89);\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n border-bottom: 2px solid rgb(89,89,89);\n margin-bottom: 30px;\n color: rgb(89,89,89);\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-size: 22px;\n display: inline-block;\n border-bottom: 2px solid rgb(89,89,89);\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n color: rgb(89,89,89);\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice .multiquote-1 {\n font-style: normal;\n padding: 10px;\n position: relative;\n line-height: 1.8;\n text-indent: 0;\n border: none;\n color: #888;\n}\n\n#nice .multiquote-1:before {\n content: \"“\";\n display: inline;\n color: #555555;\n font-size: 4em;\n font-family: Arial, serif;\n line-height: 1em;\n font-weight: 700;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n display: inline;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: rgb(71, 193, 168);\n border-bottom: 1px solid rgb(71, 193, 168);\n}\n\n/* 加粗 */\n#nice strong {\n color: rgb(71, 193, 168);\n}\n\n/* 斜体 */\n#nice em {\n color: rgb(71, 193, 168);\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: rgb(71, 193, 168);\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: rgb(71, 193, 168);\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: rgb(71, 193, 168);\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(71, 193, 168);\n}\n\n#nice .footnote-item em {\n color: black;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}", - "article": null, - "html": null, - "exampleHtml": null, - "authorName": "画手", - "authorEmail": null, - "description": "嫩青的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21233, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:06.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "5", - "itemId": null, - "name": "绿意", - "cover": "https://files.mdnice.com/pic/02f3f593-3380-4aa6-9d90-6e2b6f276558.png", - "css": "/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n font-size: 15px;\n letter-spacing: 0.05em;\n color:#595959\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n margin: 1em 4px;\n}\n\n/* 一级标题 */\n#nice h1 {\n margin: 1.2em 0 1em;\n padding: 0;\n font-weight: bold;\n color:#35b378;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n bmin-height: 32px;\n line-height: 32px;\n border-bottom: solid 1px #000000;\n color: #35b378;\n display: inline-block;\n border-bottom-width: 0px;\n border-bottom-style: solid;\n border-color: #35b378;\n padding-top: 5px;\n padding-right: 0.5em;\n padding-left: 0.5em;\n font-size: 23px;\n margin: 1em 0 0rem 0;\n padding: 0.5em 0;\n text-align: leftt;\n font-weight: bold;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 1.2em 0 1em;\n padding: 0;\n font-weight: bold;\n color: #35b378;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n margin: 10px 0;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice .multiquote-1 {\n margin: 10px 5px;\n border-left: 3px solid #35b378;\n border-right: 0px solid #35b378;\n color: #616161;\n quotes: none;\n background: #FBF9FD\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #35b378;\n border-bottom: 1px solid #35b378;\n}\n\n/* 加粗 */\n#nice strong {\n color:#35b378;\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n border: 1px solid #35b378;\n margin: 1.5em auto;\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: #35b378;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #35b378;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #35b378;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}", - "article": "https://mp.weixin.qq.com/s/gpancJ62Dkd4ccXzFg2g5Q", - "html": null, - "exampleHtml": null, - "authorName": "夜尽天明", - "authorEmail": null, - "description": "绿意的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21234, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:12.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "6", - "itemId": null, - "name": "红绯", - "cover": "https://files.mdnice.com/pic/9f008265-8511-4f9c-aafd-87027c94bd58.png", - "css": "/*自定义样式,实时生效*/\n\n/* 全局属性\n * 页边距 padding:30px;\n * 全文字体 font-family:ptima-Regular;\n * 英文换行 word-break:break-all;\n */\n#nice {\n font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, \"PingFang SC\", Cambria, Cochin, Georgia, Times, \"Times New Roman\", serif;\n padding: 5px;\n font-size: 16px;\n color: #353535;\n word-spacing: 0.8px;\n letter-spacing: 0.8px;\n border-radius: 16px;\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top:5px;\n * 下边距 margin-bottom:5px;\n * 行高 line-height:26px;\n * 词间距 word-spacing:3px;\n * 字间距 letter-spacing:3px;\n * 对齐 text-align:left;\n * 颜色 color:#3e3e3e;\n * 字体大小 font-size:16px;\n * 首行缩进 text-indent:2em;\n */\n#nice p {\n line-height: 1.75;\n margin: 0.8em 0;\n font-size: 16px;\n color: #353535;\n}\n\n/* 一级标题 */\n#nice h1 {\n border-top: 2px solid rgb(248, 57, 41);\n text-align: center;\n font-size: 1.3em;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n display: inline-block;\n font-weight: normal;\n background: rgb(248, 57, 41);\n color: #ffffff;\n padding: 3px 10px 1px;\n border-radius: 0 0 13px 13px;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n text-align: left;\n margin: 20px 10px 0px 0px;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-size: 18px;\n font-weight: 700;\n color: #222;\n display: inline-block;\n padding-left: 10px;\n border-left: 5px solid rgb(248, 57, 41);\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {}\n\n/* 三级标题 */\n#nice h3 {}\n\n/* 三级标题内容 */\n#nice h3 .content {\n font-size: 16px;\n color: #222;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n color: #f83929;\n font-size: 16px;\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n color: #f83929;\n font-size: 16px;\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n color: #353535;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice .multiquote-1 {\n font-style: normal;\n border-left: none;\n padding: 15px 10px;\n line-height: 1.75;\n border-radius: 13px;\n color: #353535;\n background: #f5f5f5;\n}\n\n#nice .multiquote-1:before {\n content: \"“\";\n display: block;\n font-size: 2em;\n color: rgb(248, 57, 41);\n font-family: Arial, serif;\n line-height: 1em;\n font-weight: 700;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n color: #353535;\n font-size: 16px;\n margin: 0 10px;\n display: block;\n}\n\n#nice .multiquote-1:after {\n content: \"”\";\n float: right;\n display: block;\n font-size: 2em;\n color: rgb(248, 57, 41);\n font-family: Arial, serif;\n line-height: 1em;\n font-weight: 700;\n}\n\n/* 链接 \n* border-bottom: 1px solid #009688;\n*/\n#nice a {\n color: rgb(248, 57, 41);\n font-weight: 400;\n border-bottom: 1px solid rgb(248, 57, 41);\n\n}\n\n/* 加粗 */\n#nice strong {\n font-weight: 700;\n color: rgb(248, 57, 41);\n}\n\n/* 斜体 */\n#nice em {\n color: rgb(248, 57, 41);\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: rgb(248, 57, 41);\n}\n\n/* 删除线 */\n#nice del {}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top:1px solid #3e3e3e;\n */\n#nice hr {\n height: 1px;\n padding: 0;\n border: none;\n border-top: medium solidid #333;\n text-align: center;\n background-image: linear-gradient(to right, rgba(248, 57, 41, 0), rgba(248, 57, 41, 0.75), rgba(248, 57, 41, 0));\n}\n\n/* 图片\n * 宽度 width:80%;\n * 居中 margin:0 auto;\n * 居左 margin:0 0;\n */\n#nice figure {\n border-radius: 16px;\n overflow: hidden;\n}\n\n#nice figure a img {\n border-radius: 16px;\n width: 100%;\n max-width: 100%;\n}\n\n#nice img {\n border-radius: 6px;\n display: block;\n margin: 20px auto;\n max-width: 95%;\n object-fit: contain;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display: block;\n font-size: 12px;\n}\n\n/* 行内代码 */\n#nice p code,\n#nice li code {\n color: rgb(271, 93, 108);\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 16px;\n color: #645647;\n}\n\n#nice table tr th {\n color: #353535;\n background-color: #dbd9d8;\n}\n\n#nice .footnotes {\n font-size: 16px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n font-weight: normal;\n color: #f83929;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n font-weight: normal;\n color: #f83929;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n font-size: 16px;\n display: block;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n content: '参考资料 ';\n color: #f83929;\n letter-spacing: 1px;\n text-align: left;\n display: block;\n font-weight: 500;\n padding-bottom: .1em;\n border-bottom: 3px double #f83929;\n font-size: 20px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n color: #f83929;\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n font-weight: 400;\n color: #f83929;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-weight: 400;\n font-size: 14px;\n color: #353535;\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n color: #353535;\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg {\n color: #353535;\n}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width: 100%;\n margin-bottom: 0;\n}", - "article": "", - "html": null, - "exampleHtml": null, - "authorName": "HeyRain", - "authorEmail": null, - "description": "红绯的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21238, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:19.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "8", - "itemId": null, - "name": "蓝莹", - "cover": "https://files.mdnice.com/pic/248727f4-d81c-42a3-9723-3a1e5bdbda30.png", - "css": "/* 全局属性 */\n\n#nice {\n font-family: \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n word-break: break-all;\n}\n\n/* 标题 */\n#nice h1 {\n font-size: 1.7em;\n font-weight: normal;\n border-bottom: 2px solid hsl(216, 100%, 68%);\n}\n\n#nice h1 .content {\n background: hsl(216, 100%, 68%);\n color: white;\n padding: 3px 10px;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n margin-right: 3px;\n}\n\n#nice h2 {\n font-weight: normal;\n color: #333;\n font-size: 1.4em;\n border-bottom: 1px solid hsl(216, 100%, 68%);\n}\n\n#nice h2 .content {\n border-bottom: 1px solid hsl(216, 100%, 68%);\n}\n\n#nice h3 {\n font-weight: normal;\n color: #333;\n font-size: 1.2em;\n}\n\n/* 特殊规定:\n * h4 → 摘要\n * h5 → 强调\n * h6 → 序号\n * em → 高亮\n */\n\n#nice h4 {\n font-weight: normal;\n font-size: 1em;\n width: 80%;\n border: 1px solid hsl(216, 100%, 68%);\n border-top: 4px solid hsl(216, 100%, 68%);\n padding: 10px;\n margin: 30px auto;\n color: #333;\n}\n\n#nice h5 {\n font-weight: normal;\n font-size: 1.3em;\n text-align: center;\n background: hsl(216, 100%, 68%);\n border: 3px double #fff;\n width: 80%;\n padding: 10px;\n margin: 30px auto;\n color: #fff;\n}\n\n#nice h6 {\n font-size: 1.5em;\n font-weight: normal;\n color: hsl(216, 100%, 68%);\n border-bottom: 1px solid hsl(216, 100%, 68%);\n}\n\n#nice em {\n font-style: normal;\n font-weight: normal;\n color: white;\n background: hsl(244, 100%, 75%);\n padding: 2px 4px;\n\tmargin: 0px 2px;\n}\n\n/* 其他块元素 */\n\n#nice ol,\n#nice ul {\n padding-left: 2em;\n}\n\n#nice hr {\n width: 90%;\n margin: 1.5em auto;\n border-top: 2px dashed hsl(216, 100%, 68%);\n}\n\n#nice table {\n margin: 1.5em auto;\n width: auto;\n}\n\n#nice img {\n width: 90%;\n margin: 0 auto;\n box-shadow: #CCC 0 10px 15px;\n}\n\n#nice .multiquote-1 {\n background: #f9f9f9;\n border-left-color: hsl(216, 100%, 68%);\n}\n\n#nice .multiquote-1 p {\n color: #999;\n padding: 3px 0;\n}\n\n#nice a {\n color: hsl(187, 100%, 45%);\n font-weight: normal;\n border-bottom-color: hsl(187, 100%, 45%);\n}\n\n#nice strong {\n color: hsl(216, 80%, 44%);\n}\n\n#nice s,\n#nice del {\n color: #999;\n}\n\n#nice p,\n#nice li,\n#nice li span,\n#nice h4,\n#nice table tr td {\n color: #666;\n}\n\n#nice table tr th {\n color: #333;\n font-weight: normal;\n}\n\n#nice p code,\n#nice li code {\n color: hsl(216, 100%, 68%);\n}\n\n#nice sup {\n line-height: 0;\n}\n\n#nice .footnote-word,\n.footnote-ref {\n font-weight: normal;\n color: hsl(187, 100%, 45%);\n}\n\n#nice .footnotes-sep {\n font-family: inherit;\n}\n\n#nice .footnote-num {\n font-family: inherit;\n}\n\n#nice .footnote-item p {\n color: #666;\n}\n\n#nice .footnote-item p em {\n color: #999;\n background: transparent;\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width:100%;\n margin-bottom: 0;\n}", - "article": "https://mp.weixin.qq.com/s/OfRQaBe3XVXXjE7f84nSwA", - "html": null, - "exampleHtml": null, - "authorName": "谭淞宸", - "authorEmail": null, - "description": "蓝莹的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21239, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:33.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "10", - "itemId": null, - "name": "兰青", - "cover": "https://files.mdnice.com/pic/c65c74bf-37c7-4b0b-97b9-1c8c47615535.png", - "css": "/*自定义样式,实时生效*/\n\n/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n text-align: justify;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 1.8em;\n color: #009688;\n \tmargin: 1.2em auto;\n text-align: center;\n border-bottom: 1px solid #009688;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n color: #009688;\n padding-left: 10px;\n margin: 1em auto;\n border-left: 3px solid #009688;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 0.6em auto;\n padding-left: 10px;\n border-left: 2px solid #009688;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 四级标题 */\n#nice h4 {\n margin: 0.6em auto;\n font-size: 1.2em;\n padding-left: 10px;\n border-left: 2px dashed #009688;\n}\n\n/* 五级标题 */\n#nice h5 {\n margin: 0.6em auto;\n font-size: 1.1em;\n padding-left: 10px;\n border-left: 1px dashed #009688;\n}\n\n/* 六级标题 */\n#nice h6 {\n margin: 0.6em auto;\n font-size: 1em;\n padding-left: 10px;\n border-left: 1px dotted #009688;\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice .multiquote-1 {\n border-left: 2px solid #888;\n border-right: 2px solid #888;\n padding-left: 1em;\n color: #777;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #009688;\n border-bottom: 1px solid #009688;\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n margin: 20px 0;\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: #009688;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/* 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th {\n border: 1px solid #009688;\n background-color: #009688;\n color: #f8f8f8;\n border-bottom: 0;\n}\n\n#nice table tr td {\n border: 1px solid #009688;\n}\n\n#nice table tr:nth-child(2n) {\n background-color: #f8f8f8;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #009688;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #009688;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}", - "article": "https://mp.weixin.qq.com/s/iL8xlH0I3yOEOrhcBqc0kg", - "html": null, - "exampleHtml": null, - "authorName": "Krahets", - "authorEmail": null, - "description": "兰青的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21240, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:47.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "11", - "itemId": null, - "name": "山吹", - "cover": "https://files.mdnice.com/pic/2d041c6f-564b-4392-9636-9998f2b056bb.png", - "css": "/*自定义样式,实时生效*/\n#nice {\n}\n\n#nice p {\n\tmargin: 0 0 20px;\n\tpadding: 0;\n\tline-height: 1.8em;\n\tcolor: #3a3a3a;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 2.1em;\n\tline-height: 1.1em;\n\tpadding-top: 16px;\n padding-bottom: 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid #c99833;\n}\n/* 一级标题内容 */\n#nice h1 .content {\n color: #515151;\n font-weight: 700;\n}\n\n#nice h2, h3, h4, h5, h6 {\n line-height: 1.5em;\n margin-top: 2.2em;\n margin-bottom: 4px;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n margin-bottom: 35px;\n}\n\n/* 二级标题内容 */\n\n#nice h2 .content {\n display: inline-block;\n font-weight: bold;\n background: linear-gradient(#fff 60%, #ffb11b 40%);\n color: #515151;\n padding: 2px 13px 2px;\n margin-right: 3px;\n height: 50%;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {}\n\n/* 三级标题 */\n#nice h3 {\n line-height: 1.4;\n padding-top: 10px;\n margin: 10px 0 5px;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n color: #515151;\n font-weight: 700;\n font-size: 1.0em;\n padding-left: 20px;\n border-left: 3px solid #f9bf45;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice .multiquote-1 {\n border-left-color: #ffb11b;\n background: #fff5e3;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n color: #595959;\n}\n\n/* 链接 */\n#nice a {\n border: none;\n text-decoration: none;\n color: #dda52d;\n}\n\n#nice a:hover {\n color: #f9bf45;\n text-decoration: underline;\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 加粗 */\n#nice strong {}\n\n/* 斜体 */\n#nice em {}\n\n/* 加粗斜体 */\n#nice em strong {}\n\n/* 删除线 */\n#nice del {\n color: #d19826;\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n border-top: 1px solid #f9bf45;\n margin: 20px 0px;\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n width: 100%;\n border-radius: 5px;\n display: block;\n margin-bottom: 15px;\n height: auto;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n color: #dda52d;\n font-size: 14px;\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: #9b6e23;\n background-color: #fff5e3;\n padding: 3px;\n margin: 3px;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n text-align: center;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #ffb11b;\n padding: 3px;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #dda52d;\n margin: 2px;\n padding: 3px;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n margin: 30px 0px 15px 0px;\n font-weight: 800;\n}\n\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width:100%;\n margin-bottom: 0;\n}", - "article": "", - "html": null, - "exampleHtml": null, - "authorName": "ElyhG", - "authorEmail": null, - "description": "山吹的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21235, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:53.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "12", - "itemId": null, - "name": "前端之巅同款", - "cover": "https://files.mdnice.com/pic/473ace64-588c-4bcb-9ef3-0b005c78c1f2.png", - "css": "/*初始化格式*/\n\n#nice {\n line-height: 1.6;\n letter-spacing: .034em;\n color: rgb(63, 63, 63);\n font-size: 16px;\n word-break:all;\n}\n\n#nice p {\n padding-top: 23px;\n color: rgb(74,74,74);\n line-height: 1.75em;\n}\n\n/* 一级标题 */\n#nice h1 {\n text-align:center;\n background-image: url(http://img.macrozheng.com/mall/md/mountain_2.png); \n background-position: center top;\n background-repeat: no-repeat;\n background-size: 95px;\n line-height:95px;\n margin-top: 38px;\n margin-bottom: 10px;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n font-size: 20px;\n color: rgb(60, 112, 198);\n border-bottom:2px solid #3C7076;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n \n/* 二级标题 */\n#nice h2 {\n display:block;\n text-align:center;\n background-image: url(http://img.macrozheng.com/mall/md/mountain_2.png); \n background-position: center center;\n background-repeat: no-repeat;\n background-attachment: initial;\n background-origin: initial;\n background-clip: initial;\n background-size: 63px;\n margin-top: 38px;\n margin-bottom: 10px;\n}\n\n/*二级标题伪元素*/\n#nice h2:before {\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n text-align:center;\n display: inline-block;\n height: 38px;\n line-height: 42px;\n color: rgb(60, 112, 198);\n background-position: left center;\n background-repeat: no-repeat;\n background-attachment: initial;\n background-origin: initial;\n background-clip: initial;\n background-size: 63px;\n margin-top: 38px;\n font-size:18px;\n margin-bottom: 10px;\n}\n\n/* 三级标题 */\n#nice h3:before {\n content: \"\";\n background-image:url(http://img.macrozheng.com/mall/md/mountain_1.png);\n background-size:15px 15px;\n display: inline-block;\n width: 15px;\n height: 15px;\n line-height:15px;\n margin-bottom:-1px;\n}\n\n#nice h3 {\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n font-size:16px;\n font-weight:bold;\n display:inline-block;\n margin-left:8px;\n color:rgb(60,112,198);\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 列表内容 */\n#nice li {\n}\n\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice .multiquote-1 {\n padding: 15px 20px;\n line-height: 27px;\n background-color: rgb(239, 239, 239);\n border-left:none;\n display:block;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n padding: 0px;\n font-size:15px;\n color:rgb(89,89,89);\n}\n\n/* 链接 */\n#nice a {\n color: rgb(60, 112, 198);\n text-decoration:none;\n border-bottom: 1px solid rgb(60, 112, 198);\n}\n\n/* 加粗 */\n#nice strong {\n line-height: 1.75em;\n color: rgb(74,74,74);\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color:rgb(248,57,41);\n letter-spacing:0.3em;\n}\n\n/* 删除线 */\n#nice del {\n}\n \n/* 分割线 */\n#nice hr {\n height:1px;\n padding:0;\n border:none;\n text-align:center;\n background-image:linear-gradient(to right,rgba(60,122,198,0),rgba(60,122,198,0.75),rgba(60,122,198,0));\n}\n\n/* 图片 */\n#nice img {\n border-radius:4px;\n margin-bottom:25px;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display:block;\n font-size:12px;\n font-family:PingFangSC-Light;\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n\tcolor: rgb(60, 112, 198);;\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n\n/* 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n}\n\n#nice .footnotes{\n padding-top: 8px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: rgb(60, 112, 198);\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(60, 112, 198);\n}\n\n/* 脚注超链接样式 */\n#nice .footnote-item em {\n color: rgb(60, 112, 198);\n font-size:13px;\n font-style:normal;\n border-bottom-color:1px dashed rgb(60, 112, 198); \n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n background-image: none;\n background-size: none;\n display: block;\n width: auto;\n height: auto;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n color: rgb(60, 112, 198);\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: rgb(60, 112, 198);\n font-weight:bold;\n}\n\n/* 参考资料超链接 */\n#nice .footnote-item a {\n color:rgb(60, 112, 198);\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-size:14px;\n font-weight:normal;\n border-bottom:1px dashed rgb(60, 112, 198);\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n \n}\n\n/* 行内公式*/\n#nice .inline-equation svg { \n}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width:100%;\n margin-bottom: 0;\n}", - "article": "https://mp.weixin.qq.com/s/sSJwPflpzan1R_7kmBRwmQ", - "html": null, - "exampleHtml": null, - "authorName": "HeyRain", - "authorEmail": null, - "description": "前端之巅的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21236, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:15:02.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "13", - "itemId": null, - "name": "极客黑\n\n", - "cover": "https://files.mdnice.com/pic/d160f5ec-26cb-4de8-8509-a8b29e8dd20c.png", - "css": "/*自定义样式,实时生效*/\n\n/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n box-sizing: border-box;\n margin-bottom: 16px;\n font-family: \"Helvetica Neue\", Helvetica, \"Segoe UI\", Arial, freesans, sans-serif;\n font-size: 15px;\n text-align: start;\n white-space: normal;\n text-size-adjust: auto;\n line-height: 1.75em;\n}\n\n/* 一级标题 */\n#nice h1 {\n margin-top: -0.46em;\n margin-bottom: 0.1em;\n border-bottom: 2px solid rgb(198, 196, 196);\n box-sizing: border-box;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n padding-top: 5px;\n padding-bottom: 5px;\n color: rgb(160, 160, 160);\n font-size: 13px;\n line-height: 2;\n box-sizing: border-box;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n margin: 10px auto;\n height: 40px;\n background-color: rgb(251, 251, 251);\n border-bottom: 1px solid rgb(246, 246, 246);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n margin-left: -10px;\n display: inline-block;\n width: auto;\n height: 40px;\n background-color: rgb(33, 33, 34);\n border-bottom-right-radius:100px;\n color: rgb(255, 255, 255);\n padding-right: 30px;\n padding-left: 30px;\n line-height: 40px;\n font-size: 16px;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 20px auto 5px;\n border-top: 1px solid rgb(221, 221, 221);\n box-sizing: border-box;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n margin-top: -1px;\n padding-top: 6px;\n padding-right: 5px;\n padding-left: 5px;\n font-size: 17px;\n border-top: 2px solid rgb(33, 33, 34);\n display: inline-block;\n line-height: 1.1;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n#nice h4 {\n margin: 10px auto -1px;\n border-top: 1px solid rgb(221, 221, 221);\n box-sizing: border-box;\n}\n\n#nice h4 .content {\n margin-top: -1px;\n padding-top: 6px;\n padding-right: 5px;\n padding-left: 5px;\n font-size: 16px;\n border-top: 2px solid rgb(33, 33, 34);\n display: inline-block;\n line-height: 1.1;\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n font-size: 15px;\n font-family: \"Helvetica Neue\", Helvetica, \"Segoe UI\", Arial, freesans, sans-serif;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice .multiquote-1 {\n border-left-color: rgb(221, 221, 221);\n margin-top: 1.2em;\n margin-bottom: 1.2em;\n padding-right: 1em;\n padding-left: 1em;\n border-left-width: 4px;\n color: rgb(119, 119, 119);\n quotes: none;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n font-size: 15px;\n font-family: -apple-system-font, BlinkMacSystemFont, \"Helvetica Neue\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei UI\", \"Microsoft YaHei\", Arial, sans-serif;\n color: rgb(119, 119, 119);\n line-height: 1.75em;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: rgb(239, 112, 96);\n border-bottom: 1px solid rgb(239, 112, 96);\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: rgb(239, 112, 96);\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #ff3502;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(239, 112, 96);\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}", - "article": null, - "html": null, - "exampleHtml": null, - "authorName": "hyper-xx", - "authorEmail": null, - "description": "极客黑的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21237, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:15:07.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "15", - "itemId": null, - "name": "蔷薇紫", - "cover": "https://files.mdnice.com/pic/06aa2d77-0a16-44c4-93f2-3aff4c67e095.png", - "css": "/* 全局属性\n* 页边距 padding:30px;\n* 全文字体 font-family:optima-Regular;\n* 英文换行 word-break:break-all;\ncolor:#595959;\n*/\n#nice {\n line-height: 1.75;\n color: #595959;\n font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;\n letter-spacing: 2px;\n background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%);\n background-size: 20px 20px;\n background-position: center center;\n}\n\n/* 段落,下方未标注标签参数均同此处\n* 上边距 margin-top:5px;\n* 下边距 margin-bottom:5px;\n* 行高 line-height:26px;\n* 词间距 word-spacing:3px;\n* 字间距 letter-spacing:3px;\n* 对齐 text-align:left;\n* 颜色 color:#3e3e3e;\n* 字体大小 font-size:16px;\n* 首行缩进 text-indent:2em;\n*/\n#nice p {\n color: #595959;\n margin: 10px 0px;\n letter-spacing: 2px;\n font-size: 14px;\n word-spacing: 2px;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 25px;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n display: inline-block;\n font-weight: bold;\n color: #595959;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n text-align: left;\n margin: 20px 10px 0px 0px;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-size: 18px;\n font-weight: bold;\n display: inline-block;\n padding-left: 10px;\n border-left: 5px solid #DEC6FB;\n color: #595959;\n\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {}\n\n/* 三级标题 */\n#nice h3 {\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n border-bottom: 2px solid #DEC6FB;\n color: #595959;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n/* 无序列表整体样式\n* list-style-type: square|circle|disc;\n*/\n#nice ul {\n font-size: 15px; /*神奇逻辑,必须比li section的字体大才会在二级中生效*/\n color: #595959;\n list-style-type: circle;\n}\n\n\n/* 有序列表整体样式\n* list-style-type: upper-roman|lower-greek|lower-alpha;\n*/\n#nice ol {\n font-size: 15px;\n color: #595959;\n}\n\n/* 列表内容,不要设置li\n*/\n#nice li section {\n font-size: 14px;\n font-weight: normal;\n color: #595959;\n}\n\n/* 引用\n* 左边缘颜色 border-left-color:black;\n* 背景色 background:gray;\n*/\n#nice .multiquote-1::before {\n content: \"❝\";\n /* color: #d9b8fa;*/\n color: #DEC6FB;\n font-size: 34px;\n line-height: 1;\n font-weight: 700;\n}\n\n#nice .multiquote-1 {\n text-size-adjust: 100%;\n line-height: 1.55em;\n font-weight: 400;\n border-radius: 6px;\n color: #595959;\n font-style: normal;\n text-align: left;\n box-sizing: inherit;\n border-left: none;\n border: 1px solid #DEC6FB;\n background: #F6EEFF;\n\n}\n\n#nice .multiquote-1 p {\n color: #595959;\n}\n\n#nice .multiquote-1::after {\n content: \"❞\";\n float: right;\n /* color: #d9b8fa; */\n color: #DEC6FB;\n}\n\n/* 链接 \n* border-bottom: 1px solid #009688;\n*/\n#nice a {\n color: #664D9D;\n font-weight: normal;\n border-bottom: 1px solid #664D9D;\n}\n\n#nice strong::before {\n content: '「';\n}\n\n/* 加粗 */\n#nice strong {\n color: #595959;\n font-weight: bold;\n}\n\n#nice strong::after {\n content: '」';\n}\n\n/* 斜体 */\n#nice em {\n font-style: normal;\n color: #595959;\n background: #F6EEFF;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #595959;\n}\n\n/* 删除线 */\n#nice del {\n color: #595959;\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top:1px solid #3e3e3e;\n*/\n#nice hr {\n height: 1px;\n padding: 0;\n border: none;\n border-top: 2px solid #d9b8fa;\n}\n\n/* 图片\n* 宽度 width:80%;\n* 居中 margin:0 auto;\n* 居左 margin:0 0;\n*/\n#nice img {\n border-radius: 6px;\n display: block;\n margin: 20px auto;\n object-fit: contain;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display: block;\n font-size: 13px;\n color: #595959;\n}\n\n/* 行内代码 */\n#nice p code,\n#nice li code {\n color: #595959;\n}\n\n/* 非微信代码块\n* 代码块不换行 display:-webkit-box !important;\n* 代码块换行 display:block;\n*/\n#nice .code-snippet__fix {\n background: #f7f7f7;\n border-radius: 2px;\n}\n\n#nice pre code {\n /* background: #f7f7f7; */\n}\n\n/*\n* 表格内的单元格\n* 字体大小 font-size: 16px;\n* 边框 border: 1px solid #ccc;\n* 内边距 padding: 5px 10px;\n*/\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n color: #595959;\n}\n\n#nice .footnotes {\n background: #F6EEFF;\n padding: 20px 20px 20px 20px;\n font-size: 14px;\n border: 0.8px solid #DEC6FB;\n border-radius: 6px;\n border: 1px solid #DEC6FB;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n font-weight: normal;\n color: #595959;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n font-weight: normal;\n color: #595959;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n background: #F6EEFF;\n font-size: 14px;\n color: #595959;\n display: block;\n}\n\n/* \"参考资料\"四个字 \n* 内容 content: \"参考资料\";\n*/\n#nice .footnotes-sep:before {\n content: 'Reference';\n color: #595959;\n letter-spacing: 1px;\n border-bottom: 2px solid #DEC6FB;\n display: inline;\n background: linear-gradient(white 60%, #F6EEFF 40%);\n font-size: 20px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: #595959;\n font-weight: bold;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-weight: normal;\n}\n\n/* 行间公式\n* 最大宽度 max-width: 300% !important;\n*/\n#nice .block-equation svg {}\n\n/* 行内公式\n*/\n#nice .inline-equation svg {}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width:100%;\n margin-bottom: 0;\n}", - "article": "https://mp.weixin.qq.com/s/x0xqSpQixW2xj5qXCgWSyA", - "html": null, - "exampleHtml": null, - "authorName": "HeyRain", - "authorEmail": null, - "description": "蔷薇紫的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21241, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:15:21.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "16", - "itemId": null, - "name": "萌绿", - "cover": "https://files.mdnice.com/pic/168a4408-be49-4706-826f-b63c001f8ba3.png", - "css": "#nice {\n line-height: 1.6;\n letter-spacing: .034em;\n color: rgb(63, 63, 63);\n font-size: 16px;\n word-break:all;\n}\n#nice p {\n padding-top: 1em;\n color: rgb(74,74,74);\n line-height: 1.75em;\n}\n/* 一级标题 */\n#nice h1 {\n text-align:center;\n background-image: url(http://img.macrozheng.com/mall/md/koala-1.png); \n background-position: center top;\n background-repeat: no-repeat;\n background-size: 75px;\n line-height:95px;\n margin-top: 38px;\n margin-bottom: 10px;\n}\n/* 一级标题内容 */\n#nice h1 .content {\n font-size: 20px;\n color: #48b378;;\n border-bottom:2px solid #2e7950;\n}\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n \n/* 二级标题 */\n#nice h2 {\n display:block;\n text-align:center;\n background-image: \turl(http://img.macrozheng.com/mall/md/koala-2.png); \n background-position: center center;\n background-repeat: no-repeat;\n background-attachment: initial;\n background-origin: initial;\n background-clip: initial;\n background-size: 50px;\n margin-top: 1em;\n margin-bottom: 10px;\n}\n/*二级标题伪元素*/\n#nice h2:before {\n}\n/* 二级标题内容 */\n#nice h2 .content {\n text-align:center;\n display: inline-block;\n height: 38px;\n line-height: 42px;\n color: #48b378;\n background-position: left center;\n background-repeat: no-repeat;\n background-attachment: initial;\n background-origin: initial;\n background-clip: initial;\n background-size: 63px;\n margin-top: 38px;\n font-size:18px;\n margin-bottom: 10px;\n}\n/* 三级标题 */\n#nice h3:before {\n content: \"\";\n background-image:url(http://img.macrozheng.com/mall/md/koala-3.png);\n background-size:100% 100%;\n background-repeat:no-repeat;\n display: inline-block;\n width: 16px;\n height: 15px;\n line-height:15px;\n margin-bottom:-1px;\n}\n#nice h3 {\n margin-top:1.2em;\n}\n#nice h4 {\n margin-top: 30px;\n}\n/* 三级标题内容 */\n#nice h3 .content {\n font-size:17px;\n font-weight:bold;\n display:inline-block;\n margin-left:8px;\n color:#48b378;\n}\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n/* 列表内容 */\n#nice li {\n}\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice .multiquote-1 {\n padding: 15px 20px;\n line-height: 27px;\n background-color:#FBF9FD;\n border-left:3px solid #35b378;\n display:block;\n}\n/* 引用文字 */\n#nice .multiquote-1 p {\n padding: 0px;\n font-size:15px;\n color:rgb(89,89,89);\n}\n/* 链接 */\n#nice a {\n color: #48b378;\n text-decoration:none;\n border-bottom: 1px solid #48b378;\n}\n/* 加粗 */\n#nice strong {\n line-height: 1.75em;\n color: rgb(74,74,74);\n}\n/* 斜体 */\n#nice em {\n}\n/* 加粗斜体 */\n#nice em strong {\n color:rgb(248,57,41);\n letter-spacing:0.3em;\n}\n/* 删除线 */\n#nice del {\n}\n \n/* 分割线 */\n#nice hr {\n height:1px;\n padding:0;\n border:none;\n text-align:center;\n background-image:linear-gradient(to right,rgba(93, 186, 133,0),rgba(93, 186, 133,0.75),rgba(93, 186, 133,0));\n}\n/* 图片 */\n#nice img {\n border-radius:4px;\n margin-bottom:25px;\n}\n/* 图片描述文字 */\n#nice figcaption {\n display:block;\n font-size:12px;\n font-family:PingFangSC-Light;\n}\n/* 行内代码 */\n#nice p code, #nice li code {\n\tcolor: #28ca71;\n}\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n/* 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n}\n#nice .footnotes{\n padding-top: 8px;\n}\n/* 脚注文字 */\n#nice .footnote-word {\n color: rgb(90, 185, 131);\n}\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(90, 185, 131);\n}\n/* 脚注超链接样式 */\n#nice .footnote-item em {\n color: rgb(90, 185, 131);\n font-size:13px;\n font-style:normal;\n border-bottom-color:1px dashed rgb(90, 185, 131); \n}\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n background-image: none;\n background-size: none;\n display: block;\n width: auto;\n height: auto;\n}\n/* 参考资料编号 */\n#nice .footnote-num {\n color: rgb(90, 185, 131);\n}\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: rgb(90, 185, 131);\n font-weight:bold;\n}\n/* 参考资料超链接 */\n#nice .footnote-item a {\n color:rgb(93, 186, 133);\n}\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-size:14px;\n font-weight:normal;\n border-bottom:1px dashed rgb(93, 186, 133);\n}\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n/* 行内公式*/\n#nice .inline-equation svg { \n}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width:100%;\n margin-bottom: 0;\n}", - "article": "https://mp.weixin.qq.com/s/iK3r9I28NMWApEydH046-w", - "html": null, - "exampleHtml": null, - "authorName": "koala", - "authorEmail": null, - "description": "萌绿的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21242, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:15:26.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "17", - "itemId": null, - "name": "全栈蓝", - "cover": "https://files.mdnice.com/pic/39cc0084-e0ca-47e3-b661-6c00c61c23b5.png", - "css": "/*自定义样式,实时生效*/\n\n/* 全局属性\n* 页边距 padding:30px;\n* 全文字体 font-family:optima-Regular;\n* 英文换行 word-break:break-all;\ncolor:#2b2b2b;\n*/\n#nice {\n line-height: 1.25;\n color: #2b2b2b;\n font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;\n letter-spacing: 2px;\n background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%);\n background-size: 20px 20px;\n background-position: center center;\n}\n\n/* 段落,下方未标注标签参数均同此处\n* 上边距 margin-top:5px;\n* 下边距 margin-bottom:5px;\n* 行高 line-height:26px;\n* 词间距 word-spacing:3px;\n* 字间距 letter-spacing:3px;\n* 对齐 text-align:left;\n* 颜色 color:#3e3e3e;\n* 字体大小 font-size:16px;\n* 首行缩进 text-indent:2em;\n*/\n#nice p {\n color: #2b2b2b;\n margin: 10px 0px;\n letter-spacing: 2px;\n font-size: 14px;\n word-spacing: 2px;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 25px;\n}\n\n/* 一级标题内容 */\n#nice h1 span {\n display: inline-block;\n font-weight: bold;\n color: #40B8FA;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n display:block;\n border-bottom: 4px solid #40B8FA;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n display: flex;\n color: #40B8FA;\n font-size: 20px;\n margin-left: 25px;\n}\n\n/* 二级标题前缀 */\n#nice h2 .prefix {\n display: flex;\n width: 20px;\n height: 20px;\n background-size: 20px 20px;\n background-image:url(http://img.macrozheng.com/mall/md/fullstack-1.png);\n margin-bottom: -22px;\n}\n\n/* 二级标题后缀 */\n#nice h2 .suffix {\n display: flex;\n box-sizing: border-box;\n width: 200px;\n height: 10px;\n border-top-left-radius: 20px;\n background: RGBA(64, 184, 250, .5);\n color: rgb(255, 255, 255);\n font-size: 16px;\n letter-spacing: 0.544px;\n justify-content: flex-end;\n box-sizing: border-box !important;\n overflow-wrap: break-word !important;\n float: right;\n margin-top: -10px;\n}\n\n/* 三级标题 */\n#nice h3 {\n font-size: 17px;\n font-weight: bold;\n text-align: center;\n position:relative;\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n border-bottom: 2px solid RGBA(79, 177, 249, .65);\n color: #2b2b2b;\n padding-bottom:2px\n}\n\n#nice h3 .content:before{\n content:'';\n width:30px;\n height:30px;\n display:block;\n background-image:url(http://img.macrozheng.com/mall/md/fullstack-2.png);\n background-position:center;\n background-size:30px;\n margin:auto;\n opacity:1;\n background-repeat:no-repeat;\n margin-bottom:-8px;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n#nice h4 .content {\n height:16px;\n line-height:16px;\n font-size: 16px;\n}\n\n#nice h4 .content:before{\n content:'';\n background-image:url(http://img.macrozheng.com/mall/md/fullstack-3.png);\n display:inline-block;\n width:16px;\n height:16px;\n background-size:100% ;\n background-position:left bottom;\n background-repeat:no-repeat;\n width: 16px;\n height: 15px;\n line-height:15px;\n margin-right:6px;\n margin-bottom:-2px;\n}\n\n/* 无序列表整体样式\n* list-style-type: square|circle|disc;\n*/\n#nice ul {\n font-size: 15px; /*神奇逻辑,必须比li section的字体大才会在二级中生效*/\n color: #595959;\n list-style-type: circle;\n}\n\n\n/* 有序列表整体样式\n* list-style-type: upper-roman|lower-greek|lower-alpha;\n*/\n#nice ol {\n font-size: 15px;\n color: #595959;\n}\n\n/* 列表内容,不要设置li\n*/\n#nice li section {\n font-size: 14px;\n font-weight: normal;\n color: #595959;\n}\n\n/* 引用\n* 左边缘颜色 border-left-color:black;\n* 背景色 background:gray;\n*/\n#nice .multiquote-1::before {\n content: \"❝\";\n color: RGBA(64, 184, 250, .5);\n font-size: 34px;\n line-height: 1;\n font-weight: 700;\n}\n\n#nice .multiquote-1 {\n text-size-adjust: 100%;\n line-height: 1.55em;\n font-weight: 400;\n border-radius: 6px;\n color: #595959;\n font-style: normal;\n text-align: left;\n box-sizing: inherit;\n border-left: none;\n border: 1px solid RGBA(64, 184, 250, .4);\n background: RGBA(64, 184, 250, .1);\n\n}\n\n#nice .multiquote-1 p {\n color: #595959;\n}\n\n#nice .multiquote-1::after {\n content: \"❞\";\n float: right;\n color: RGBA(64, 184, 250, .5);\n}\n\n/* 链接\n* border-bottom: 1px solid #009688;\n*/\n#nice a {\n color: #40B8FA;\n font-weight: normal;\n border-bottom: 1px solid #3BAAFA;\n}\n\n#nice strong::before {\n content: '「';\n}\n\n/* 加粗 */\n#nice strong {\n color: #3594F7;\n font-weight: bold;\n}\n\n#nice strong::after {\n content: '」';\n}\n\n/* 斜体 */\n#nice em {\n font-style: normal;\n color: #3594F7;\n font-weight:bold;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #3594F7;\n}\n\n/* 删除线 */\n#nice del {\n color: #3594F7;\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top:1px solid #3e3e3e;\n*/\n#nice hr {\n height: 1px;\n padding: 0;\n border: none;\n border-top: 2px solid #3BAAFA;\n}\n\n/* 图片\n* 宽度 width:80%;\n* 居中 margin:0 auto;\n* 居左 margin:0 0;\n*/\n#nice img {\n border-radius: 6px;\n display: block;\n margin: 20px auto;\n object-fit: contain;\n box-shadow:2px 4px 7px #999;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display: block;\n font-size: 13px;\n color: #2b2b2b;\n}\n\n#nice figcaption:before{\n content:'';\n\tbackground-image:url(https://img.alicdn.com/tfs/TB1Yycwyrj1gK0jSZFuXXcrHpXa-32-32.png);\n display:inline-block;\n width:18px;\n height:18px;\n background-size:18px;\n\tbackground-repeat:no-repeat;\n background-position:center;\n margin-right:5px;\n margin-bottom:-5px;\n}\n\n/* 行内代码 */\n#nice p code,\n#nice li code {\n color: #3594F7;\n background: RGBA(59, 170, 250, .1);\n padding:0 2px;\n border-radius:2px;\n height:21px;\n line-height:22px;\n}\n\n/* 非微信代码块\n* 代码块不换行 display:-webkit-box !important;\n* 代码块换行 display:block;\n*/\n#nice .code-snippet__fix {\n background: #f7f7f7;\n border-radius: 2px;\n}\n\n#nice pre code {\n letter-spacing: 0px;\n}\n\n/*\n* 表格内的单元格\n* 字体大小 font-size: 16px;\n* 边框 border: 1px solid #ccc;\n* 内边距 padding: 5px 10px;\n*/\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n color: #595959;\n}\n\n#nice .footnotes {\n background: #F6EEFF;\n padding: 20px 20px 20px 20px;\n font-size: 14px;\n border: 0.8px solid #DEC6FB;\n border-radius: 6px;\n border: 1px solid #DEC6FB;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n font-weight: normal;\n color: #595959;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n font-weight: normal;\n color: #595959;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n font-size: 14px;\n color: #595959;\n display: block;\n}\n\n#nice .footnotes{\n background: RGBA(53, 148, 247, .4);\n padding: 20px 20px 20px 20px;\n font-size: 14px;\n border-radius: 6px;\n border: 1px solid RGBA(53, 148, 247, 1);\n}\n\n/* \"参考资料\"四个字\n* 内容 content: \"参考资料\";\n*/\n#nice .footnotes-sep:before {\n content: 'Reference';\n color: #595959;\n letter-spacing: 1px;\n border-bottom: 2px solid RGBA(64, 184, 250, 1);\n display: inline;\n background: linear-gradient(white 60%, RGBA(64, 184, 250, .4) 40%);\n font-size: 20px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: #595959;\n font-weight: bold;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-weight: normal;\n}\n\n/* 行间公式\n* 最大宽度 max-width: 300% !important;\n*/\n#nice .block-equation svg {}\n\n/* 行内公式\n*/\n#nice .inline-equation svg {}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width:100%;\n margin-bottom: 0;\n}", - "article": "https://mp.weixin.qq.com/s/_lO3cd0FcF0Dg3TRnHPdwg", - "html": null, - "exampleHtml": null, - "authorName": "Nealyang", - "authorEmail": null, - "description": "全栈蓝的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21243, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:15:33.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "18", - "itemId": null, - "name": "极简黑", - "cover": "https://files.mdnice.com/pic/d4e91acf-c904-4f2d-9ddd-a6bd275bc54b.png", - "css": "/* 自定义样式,实时生效,浏览器实时缓存 */\n\n/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n #nice {\n font-size:14px;\n padding:10px;\n}\n\n/*图片下提示*/\n#nice figcaption{\n font-size:12px;\n}\n#nice .imageflow-caption{\n font-size:12px;\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n font-size:14px;\n}\n\n/* 一级标题 */\n#nice h1 {\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题前缀 */\n#nice h1 .prefix {\n}\n\n/* 一级标题后缀 */\n#nice h1 .suffix{\n}\n\n/* 二级标题 */\n#nice h2 {\n \ttext-align:center;\n \tposition:relative;\n font-weight: bold;\n color: black;\n line-height: 1.1em;\n padding-top: 12px;\n padding-bottom: 12px;\n margin:70px 30px 30px;\n border: 1px solid #000;\n}\n\n#nice h2:before{\n content: ' ';\n float: left;\n display: block;\n width: 90%;\n border-top: 1px solid #000;\n height: 1px;\n line-height: 1px;\n margin-left: -5px;\n margin-top: -17px;\n}\n#nice h2:after{\n content: ' ';\n float: right;\n display: block;\n width: 90%;\n border-bottom: 1px solid #000;\n height: 1px;\n line-height: 1px;\n margin-right: -5px;\n margin-top: 16px;\n}\n/* 二级标题内容 */\n#nice h2 .content {\n display: block;\n -webkit-box-reflect: below 0em -webkit-gradient(linear,left top,left bottom, from(rgba(0,0,0,0)),to(rgba(255,255,255,0.1)));\n}\n#nice h2 strong {\n}\n/* 二级标题前缀 */\n#nice h2 .prefix {\n display: block;\n width: 3px;\n margin: 0 0 0 5%;\n height: 3px;\n line-height: 3px;\n overflow: hidden;\n background-color: #000;\n box-shadow:3px 0 #000,\n 0 3px #000,\n -3px 0 #000,\n 0 -3px #000;\n}\n\n/* 二级标题后缀 */\n#nice h2 .suffix {\n display: block;\n width: 3px;\n margin: 0 0 0 95%;\n height: 3px;\n line-height: 3px;\n overflow: hidden;\n background-color: #000;\n box-shadow:3px 0 #000,\n 0 3px #000,\n -3px 0 #000,\n 0 -3px #000;\n}\n\n/* 三级标题 */\n#nice h3 {\n background-color:#000;\n color:#fff;\n padding:2px 10px;\n width:fit-content;\n font-size:17px;\n margin:60px auto 10px;\n}\n#nice h3 strong {\n color:#fff;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题前缀 */\n#nice h3 .prefix {\n}\n\n/* 三级标题后缀 */\n#nice h3 .suffix {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n list-style-type: square;\n}\n/* 无序二级列表\n */\n#nice ul li ul li{\n list-style-type: circle;\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice .multiquote-1 {\n border-left: 3px solid rgba(0, 0, 0, 0.65);\n border-right: 1px solid rgba(0, 0, 0, 0.65);\n background: rgb(249, 249, 249);\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n box-shadow: rgba(170, 170, 170, 0.48) 0px 0px 6px 0px;\n border-radius:4px;\n margin-top:10px;\n}\n/* 行内代码 */\n#nice p code, #nice li code {\n color:#ff6441;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre.custom {\n box-shadow: rgba(170, 170, 170, 0.48) 0px 0px 6px 0px;\n max-width: 100%;\n border-radius:4px;\n margin: 10px auto 0 auto;\n}\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size:14px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep {\n font-size: 14px;\n color: #888;\n border-top: 1px solid #eee;\n padding: 30px 0 10px 0px;\n background-color: transparent;\n margin: 0;\n width: 100%;\n}\n#nice .footnotes-sep:before {\n content:'参考资料';\n}\n#nice .footnotes{\n border-left:5px solid #eee;\n padding-left:10px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n font-size:14px;\n color:#999;\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n font-size:14px;\n color:#999;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-size:14px;\n color:#999;\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}\n/* 文章结尾 */\n#nice:after{\n content:'- END -';\n font-size:15px;\n display:block;\n text-align:center;\n margin-top:50px;\n color:#999;\n border-bottom:1px solid #eee;\n}\n\n/*滑动幻灯片*/\n#nice .imageflow-layer1 img{\n margin:0;\n box-shadow: none;\n border-radius: 0;\n}\n", - "article": "https://mp.weixin.qq.com/s/6UQmAhyXQY6AaYcyd1npIg", - "html": null, - "exampleHtml": null, - "authorName": "小鱼", - "authorEmail": null, - "description": "公众号自律神仙ScarSu同款~", - "sort": null, - "checked": true, - "userThemeId": 21244, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-06-24T22:54:03.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "19", - "itemId": null, - "name": "橙蓝风", - "cover": "https://files.mdnice.com/pic/31204a5a-254e-487e-879d-4546ebcce3c3.jpg", - "css": "/*自定义样式,实时生效*/\n\n/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n margin-top: 0;\n padding: 0;\n}\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n font-size: 16px;\n line-height: 26px;\n word-spacing: 3px;\n letter-spacing: 1px;\n color: #424B5D;\n}\n#nice h1, #nice h2, #nice h3, #nice h4, #nice h5, #nice h6 {\n margin-top: 24px;\n margin-bottom: 12px;\n font-weight: bold;\n}\n/* 一级标题 */\n#nice h1 {\n font-size: 22px;\n color: #e7642b;\n}\n/* 一级标题内容 */\n#nice h1 .content {\n}\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n/* 二级标题 */\n#nice h2 {\n font-size: 20px;\n margin-top: 24px;\n margin-bottom: 12px;\n}\n/* 二级标题内容 */\n#nice h2 .content {\n color: #e7642b;\n text-align: center;\n display: block;\n background-color: #e7642b;\n color: white;\n padding: 3px 11px;\n border-radius: 1px;\n}\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n/* 三级标题 */\n#nice h3 {\n font-size: 18px;\n color: #424B5D;\n}\n/* 三级标题内容 */\n#nice h3 .content {\n}\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n/* 四级标题 */\n#nice h4 {\n font-size: 16px;\n color: #424B5D;\n}\n/* 五级标题 */\n#nice h5 {\n font-size: 16px;\n color: #424B5D;\n}\n/* 有序、无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul, #nice ol {\n font-size: 15px;\n margin: 0;\n padding-left: 24px;\n color: #424B5D;\n}\n/* 列表内容,不要设置li\n */\n#nice li section {\n margin: 4px 0;\n line-height: 24px;\n color: #424B5D;\n}\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice .multiquote-1 {\n margin: 0 8px;\n border: none;\n background: #ffffff;\n box-shadow: 0 1px 2px -2px rgba(0,0,0,.16), 0 3px 6px 0 rgba(0,0,0,.12), 0 5px 12px 4px rgba(0,0,0,.09);\n}\n/* 引用文字 */\n#nice .multiquote-1 p {\n font-size: 14px;\n color: #424B5D;\n line-height: 24px;\n}\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #eb6161;\n border-bottom: 1px solid #eb6161;\n}\n#nice a::before {\n content: '?';\n margin-right: 6px;\n}\n/* 加粗 */\n#nice strong {\n color: #424B5D;\n}\n/* 斜体 */\n#nice em {\n color: #424B5D;\n}\n/* 加粗斜体 */\n#nice em strong {\n color: #424B5D;\n}\n/* 删除线 */\n#nice del { \n}\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n border-top: 1px dashed #424B5D;\n}\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n border-radius: 5px;\n margin: 12px auto;\n}\n/* 图片描述文字 */\n#nice figcaption {\n font-size: 14px;\n margin: 12px auto;\n color: #999999;\n}\n/* 行内代码 */\n#nice p code, #nice li code {\n padding-left: 0;\n padding-right: 0;\n background: transparent;\n border-radius: 0;\n color: #eb6161;\n border-bottom: 1px solid #eb6161;\n}\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre {\n margin: 12px auto;\n box-shadow: 0 1px 2px -2px rgba(0,0,0,.16), 0 3px 6px 0 rgba(0,0,0,.12), 0 5px 12px 4px rgba(0,0,0,.09) !important;\n border-radius: 5px;\n}\n#nice pre code {\n}\n/*\n * 表格\n */\n#nice table {\n margin: 12px auto;\n}\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n color: #424B5D;\n font-size: 14px;\n}\n/* 脚注文字 */\n#nice .footnote-word {\n color: #eb6161;\n}\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #eb6161;\n}\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n font-size: 16px;\n}\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n/* 参考资料文字 */\n#nice .footnote-item p { \n font-size: 12px;\n color: #424B5D;\n}\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-size: 12px;\n color: #999999;\n}\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n color: #424B5D;\n}\n/* 行内公式\n */\n#nice .inline-equation svg { \n color: #424B5D;\n}\n\n#nice .imageflow-layer1 img {\n border-radius: 0;\n}\n\n#nice .imageflow-caption {\n font-size: 14px;\n margin-top: 8px;\n color: #999999;\n}\n\n::-webkit-scrollbar {\n height: 4px;\n}", - "article": "https://mp.weixin.qq.com/s/TM8WbWJFhDqQL0sL0bcX4g", - "html": null, - "exampleHtml": null, - "authorName": "axuebin", - "authorEmail": null, - "description": "简洁的橙蓝风", - "sort": null, - "checked": true, - "userThemeId": 21250, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-06-13T23:32:08.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "35", - "itemId": null, - "name": "凝夜紫", - "cover": "https://files.mdnice.com/pic/73c130f0-a866-45f0-8d96-ecb3bb33da32.jpg", - "css": "/*自定义样式,实时生效*/\n\n/* 全局属性\n* 页边距 padding:30px;\n* 全文字体 font-family:optima-Regular;\n* 英文换行 word-break:break-all;\n*/\n#nice {\n line-height: 1.25;\n font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;\n letter-spacing: 2px;\n background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%);\n background-size: 20px 20px;\n background-position: center center;\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top:5px;\n * 下边距 margin-bottom:5px;\n * 行高 line-height:26px;\n * 词间距 word-spacing:3px;\n * 字间距 letter-spacing:3px;\n * 对齐 text-align:left;\n * 颜色 color:#3e3e3e;\n * 字体大小 font-size:16px;\n * 首行缩进 text-indent:2em;\n */\n#nice p {\n margin: 10px 0px;\n letter-spacing: 2px;\n font-size: 14px;\n word-spacing: 2px;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 25px;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n display: inline-block;\n font-weight: bold;\n color: #773098;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n text-align: left;\n margin: 20px 10px 0px 0px;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-size: 18px;\n font-weight: bold;\n display: inline-block;\n padding-left: 10px;\n border-left: 5px solid #916dd5;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {}\n\n/* 三级标题 */\n#nice h3 {\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n border-bottom: 2px solid #d89cf6;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n font-size: 15px;\n /*神奇逻辑,必须比li section的字体大才会在二级中生效*/\n list-style-type: circle;\n}\n\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n font-size: 15px;\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n font-size: 14px;\n font-weight: normal;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice .multiquote-1 {\n border-left-color: #d89cf6;\n background: #f4eeff;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #916dd5;\n font-weight: bolder;\n border-bottom: 1px solid #916dd5;\n}\n\n#nice strong::before {\n content: '「';\n}\n\n/* 加粗 */\n#nice strong {\n color: #916dd5;\n font-weight: bold;\n}\n\n#nice strong::after {\n content: '」';\n}\n\n/* 斜体 */\n#nice em {\n font-style: normal;\n color: #916dd5;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #916dd5;\n}\n\n/* 删除线 */\n#nice del {\n color: #916dd5;\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n */\n#nice hr {\n height: 1px;\n padding: 0;\n border: none;\n border-top: 2px solid #d9b8fa;\n}\n\n/* 图片\n * 宽度 width:80%;\n * 居中 margin:0 auto;\n * 居左 margin:0 0;\n */\n#nice img {\n border-radius: 6px;\n display: block;\n margin: 20px auto;\n object-fit: contain;\n box-shadow: 2px 4px 7px #999;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display: block;\n font-size: 13px;\n}\n\n/* 行内代码 */\n#nice p code,\n#nice li code {\n color: #916dd5;\n font-weight: bolder;\n background: none;\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice .code-snippet__fix {\n background: #f7f7f7;\n border-radius: 2px;\n}\n\n#nice pre code {}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n}\n\n#nice .footnotes {\n font-size: 14px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n font-weight: normal;\n color: #916dd5;\n font-weight: bold;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n font-weight: normal;\n color: #916dd5;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n font-size: 14px;\n color: #916dd5;\n display: block;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n font-size: 20px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n color: #916dd5;\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: #916dd5;\n font-weight: bold;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-weight: normal;\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {}\n\n/* 行内公式\n */\n#nice .inline-equation svg {}", - "article": "https://mp.weixin.qq.com/s/0IDhUGxZtMDFGD-Z9Ij_Cg", - "html": null, - "exampleHtml": null, - "authorName": "童欧巴", - "authorEmail": null, - "description": "适配微信以及Safari的深色模式。“凝夜紫”,寓意在深色模式中也可以发光。", - "sort": null, - "checked": true, - "userThemeId": 21245, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-05-22T21:00:33.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "45", - "itemId": null, - "name": "灵动蓝", - "cover": "https://files.mdnice.com/pic/31016bf3-0a07-4ebe-8ded-9999a714ea90.png", - "css": "/*自定义样式,实时生效*/\n\n/* 全局属性 */\n.nice-wx-box {\n\n}\n\n#nice {\n color: #333;\n font-family: -apple-system,system-ui,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;\n}\n\n/* 标题的通用设置 */\n#nice h1,\n#nice h2,\n#nice h3,\n#nice h4,\n#nice h5,\n#nice h6 {\n padding: 30px 0;\n margin: 0;\n color: #135ce0;\n}\n\n/* 一级标题 */\n#nice h1 {\n position: relative;\n margin-top: 30px;\n margin-bottom: 10px;\n text-align: center;\n}\n\n/* 一级标题前缀,用来放背景图,支持透明度控制 */\n#nice h1 .prefix {\n display: inline-block;\n top: 0;\n width: 60px;\n height: 60px;\n background: url(http://img.macrozheng.com/mall/md/ape_blue.svg);\n background-size: 100% 100%;\n opacity: .12;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n font-size: 22px;\n display: block;\n margin-top: -36px;\n}\n\n/* 二级标题 */\n#nice h2 {\n position: relative;\n\tfont-size: 20px;\n}\n\n/* 二级标题前缀,有兴趣加内容的可以魔改 */\n#nice h2 .prefix {\n\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n\tborder-left: 4px solid;\n padding-left: 10px;\n}\n\n/* 一二级标题之间间距控制一下 */\n#nice h1 + h2 {\n padding-top: 0;\n}\n\n/* 三级标题 */\n#nice h3 {\n font-size: 16px;\n}\n\n/* 段落 */\n#nice p {\n font-size: 16px;\n line-height: 2;\n font-weight: 400;\n}\n\n/* 段落间距控制 */\n#nice p+p {\n margin-top: 16px;\n}\n\n/* 无序列表 */\n#nice ul>li ul>li {\n list-style: circle;\n}\n\n/* 无序列表内容行高 */\n#nice li section {\n line-height: 2;\n}\n\n/* 引用 */\n#nice .multiquote-1 {\n border-left-color: #b2aec5;\n background: #fff9f9;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n color: #666;\n line-height: 2;\n}\n\n/* 链接 */\n#nice a {\n color: #036aca;\n border-bottom: 0;\n font-weight: 400;\n text-decoration: none;\n}\n\n/* 加粗 */\n#nice strong {\n background: linear-gradient(to right ,#3299d2,#efbdb5);\n color: #fff;\n font-weight: 400;\n padding: 0 4px;\n display: inline-block;\n border-radius: 4px;\n margin: 0 2px;\n letter-spacing: 1px;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #fff;\n}\n\n/* 分隔线 */\n#nice hr {\n border-top: 1px solid #135ce0;\n}\n\n/* 图片描述文字,隐藏了,如果需要,请删除display */\n#nice figcaption {\n display: none;\n opacity: .6;\n margin-top: 12px;\n font-size: 12px;\n}\n\n/* 行内代码 */\n#nice p code, li code {\n color: #1394d8;\n padding: 2px 6px;\n word-break: normal;\n}\n\n/* 表格 */\n#nice table {\n border-spacing: 0;\n}\n\n/*\n * 表格内的单元格\n */\n#nice table tr th {\n background-color: #d4f1ff;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #135ce0;\n font-weight: 400;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #5ba1e2;\n font-weight: 400;\n}\n\n/* 参考资料 */\n#nice .footnotes-sep:before {\n text-align: center;\n color: #135ce0;\n content: \"参考\";\n}\n\n/* 参考编号 */\n#nice .footnote-num {\n color: #666;\n}\n\n/* 参考文字 */\n#nice .footnote-item p { \n color: #999;\n font-weight: 700;\n font-style: italic;\n font-size: 13px;\n}\n\n/* 参考解释 */\n#nice .footnote-item p em {\n color: #3375e2;\n font-style: normal;\n margin-left: 4px;\n}", - "article": "https://mp.weixin.qq.com/s/3VCR6kJwhNIUCiN-A-24pQ", - "html": null, - "exampleHtml": null, - "authorName": "飞白", - "authorEmail": null, - "description": "支持自定义标题背景图透明度,可以在这个基础上换自己的logo或者背景图,免去了ps修改透明度的麻烦。", - "sort": null, - "checked": true, - "userThemeId": 21246, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-05-30T17:49:19.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "48", - "itemId": null, - "name": "草原绿", - "cover": "https://files.mdnice.com/pic/37bae771-dfed-49d0-bda7-21aed462acc2.jpg", - "css": "/*自定义样式,实时生效*/\n\n/*自定义样式,实时生效*/\n\n/* 全局属性\n* 页边距 padding:30px;\n* 全文字体 font-family:optima-Regular;\n* 英文换行 word-break:break-all;\ncolor:#2b2b2b;\n*/\n#nice {\n line-height: 1.35;\n color: #333;\n font-family: Optima-Regular, PingFangTC-light;\n letter-spacing: 1.5px;\n}\n\n/* 段落,下方未标注标签参数均同此处\n* 上边距 margin-top:5px;\n* 下边距 margin-bottom:5px;\n* 行高 line-height:26px;\n* 词间距 word-spacing:3px;\n* 字间距 letter-spacing:3px;\n* 对齐 text-align:left;\n* 颜色 color:#3e3e3e;\n* 字体大小 font-size:16px;\n* 首行缩进 text-indent:2em;\n*/\n#nice p {\n color: #2b2b2b;\n margin: 10px 0px;\n letter-spacing: 2px;\n font-size: 16px;\n word-spacing: 2px;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 25px;\n}\n\n/* 一级标题内容 */\n#nice h1 span {\n display: inline-block;\n font-weight: bold;\n color: #4CAF50;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n display:block;\n border-bottom: 4px solid #4CAF50;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n display: flex;\n color: #4CAF50;\n font-size: 20px;\n\n}\n\n/* 二级标题前缀 */\n#nice h2 .prefix {\n\n}\n\n/* 二级标题后缀 */\n#nice h2 .suffix {\n display: flex;\n box-sizing: border-box;\n width: 20px;\n height: 10px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n background: RGBA(76, 175, 80, .5);\n color: rgb(255, 255, 255);\n font-size: 16px;\n letter-spacing: 0.544px;\n justify-content: flex-end;\n box-sizing: border-box !important;\n overflow-wrap: break-word !important;\n float: right;\n margin-top: -10px;\n}\n\n/* 三级标题 */\n#nice h3 {\n font-size: 17px;\n font-weight: bold;\n text-align: center;\n position:relative;\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n color: #2b2b2b;\n padding-bottom:2px\n}\n\n#nice h3 .content:before{\n content:'';\n width:30px;\n height:30px;\n display:block;\n background-image:url(http://img.macrozheng.com/mall/md/grass-green.png);\n background-position:center;\n background-size:30px;\n margin:auto;\n opacity:1;\n background-repeat:no-repeat;\n margin-bottom:-8px;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n#nice h4 .content {\n height:16px;\n line-height:16px;\n font-size: 16px;\n}\n\n#nice h4 .content:before{\n\n}\n\n/* 无序列表整体样式\n* list-style-type: square|circle|disc;\n*/\n#nice ul {\n font-size: 15px; /*神奇逻辑,必须比li section的字体大才会在二级中生效*/\n color: #595959;\n list-style-type: circle;\n}\n\n\n/* 有序列表整体样式\n* list-style-type: upper-roman|lower-greek|lower-alpha;\n*/\n#nice ol {\n font-size: 15px;\n color: #595959;\n}\n\n/* 列表内容,不要设置li\n*/\n#nice li section {\n font-size: 16px;\n font-weight: normal;\n color: #595959;\n}\n\n/* 引用\n* 左边缘颜色 border-left-color:black;\n* 背景色 background:gray;\n*/\n#nice .multiquote-1::before {\n content: \"❝\";\n color: #74b56d;\n font-size: 34px;\n line-height: 1;\n font-weight: 700;\n}\n\n#nice .multiquote-1 {\n text-size-adjust: 100%;\n line-height: 1.55em;\n font-weight: 400;\n border-radius: 6px;\n color: #595959;\n font-style: normal;\n text-align: left;\n box-sizing: inherit;\n border-left: none;\n border: 1px solid #1b900d;\n background: #fff;\n\n}\n\n#nice .multiquote-1 p {\n\n}\n\n#nice .multiquote-1::after {\n content: \"❞\";\n float: right;\n color: #74b56d;\n}\n\n/* 链接\n* border-bottom: 1px solid #009688;\n*/\n#nice a {\n color: #399003;\n font-weight: normal;\n border-bottom: 1px solid #399003;\n}\n\n#nice strong::before {\n content: '「';\n}\n\n/* 加粗 */\n#nice strong {\n color: #399003;\n font-weight: bold;\n}\n\n#nice strong::after {\n content: '」';\n}\n\n/* 斜体 */\n#nice em {\n font-style: normal;\n color: #399003;\n font-weight:bold;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #399003;\n}\n\n/* 删除线 */\n#nice del {\n color: #399003;\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top:1px solid #3e3e3e;\n*/\n#nice hr {\n height: 1px;\n padding: 0;\n border: none;\n border-top: 2px solid #399003;\n}\n\n/* 图片\n* 宽度 width:80%;\n* 居中 margin:0 auto;\n* 居左 margin:0 0;\n*/\n#nice img {\n border-radius: 6px;\n display: block;\n margin: 20px auto;\n object-fit: contain;\n box-shadow:2px 4px 7px #999;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display: block;\n font-size: 13px;\n color: #2b2b2b;\n}\n\n/* 行内代码 */\n#nice p code,\n#nice li code {\n color: #0bb712;\n background: rgba(127, 226, 159, 0.48);\n display:inline-block;\n padding:0 2px;\n border-radius:2px;\n height:21px;\n line-height:22px;\n}\n\n/* 非微信代码块\n* 代码块不换行 display:-webkit-box !important;\n* 代码块换行 display:block;\n*/\n#nice .code-snippet__fix {\n background: #f7f7f7;\n border-radius: 2px;\n}\n\n#nice pre code {\n letter-spacing: 0px;\n}\n\n/*\n* 表格内的单元格\n* 字体大小 font-size: 16px;\n* 边框 border: 1px solid #ccc;\n* 内边距 padding: 5px 10px;\n*/\n#nice table tr th,\n#nice table tr td {\n font-size: 16px;\n color: #595959;\n}\n\n#nice .footnotes {\n background: #F6EEFF;\n padding: 20px 20px 20px 20px;\n font-size: 16px;\n border: 0.8px solid #399003;\n border-radius: 6px;\n border: 1px solid #399003;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n font-weight: normal;\n color: #595959;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n font-weight: normal;\n color: #595959;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n font-size: 16px;\n color: #595959;\n display: block;\n}\n\n#nice .footnotes{\n background: #fff;\n padding: 20px 20px 20px 20px;\n font-size: 16px;\n border-radius: 6px;\n border: 1px solid #4CAF50;\n}\n\n/* \"参考资料\"四个字\n* 内容 content: \"参考资料\";\n*/\n#nice .footnotes-sep:before {\n content: 'Reference';\n color: #595959;\n letter-spacing: 1px;\n border-bottom: 2px solid #4CAF50;\n display: inline;\n font-size: 20px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: #595959;\n font-weight: bold;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-weight: normal;\n}\n\n/* 行间公式\n* 最大宽度 max-width: 300% !important;\n*/\n#nice .block-equation svg {}\n\n/* 行内公式\n*/\n#nice .inline-equation svg {}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width:100%;\n margin-bottom: 0;\n}", - "article": "https://mp.weixin.qq.com/s/qCiMmHyBgltFrEZuD2LxVA", - "html": null, - "exampleHtml": null, - "authorName": "超人", - "authorEmail": null, - "description": "绿油油的大草原", - "sort": null, - "checked": true, - "userThemeId": 21247, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-06-05T11:00:48.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "51", - "itemId": null, - "name": "科技蓝", - "cover": "https://files.mdnice.com/pic/1919fe6a-4e84-4365-bd94-eb66e592c04a.png", - "css": "/*自定义样式,实时生效*/\n\n/* 全局属性\n * 页边距 padding:30px;\n * 全文字体 font-family:ptima-Regular;\n * 英文换行 word-break:break-all;\n */\n#nice {\n font-family:PingFangSC-Light;\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top:5px;\n * 下边距 margin-bottom:5px;\n * 行高 line-height:26px;\n * 词间距 word-spacing:3px;\n * 字间距 letter-spacing:3px;\n * 对齐 text-align:left;\n * 颜色 color:#3e3e3e;\n * 字体大小 font-size:16px;\n * 首行缩进 text-indent:2em;\n */\n#nice p {\n margin:10px 10px;\n line-height:1.75;\n letter-spacing:0.2em;\n font-size: 15px;\n word-spacing:0.1em;\n}\n\n/* 一级标题 */\n#nice h1 {\n border-bottom: 2px solid #0e88eb;\n font-size: 1.4em;\n text-align: center;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n font-size: 1.4em;\n display:inline-block;\n font-weight: bold;\n //background: #0e88eb;\n color:#ffffff;\n color: #0e88eb;\n padding:3px 10px 1px;\n border-top-right-radius:3px;\n border-top-left-radius:3px;\n margin-right:3px;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n \n/* 二级标题 */\n#nice h2 {\n text-align:left;\n margin:20px 10px 0px 0px;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-family:STHeitiSC-Light;\n font-size: 22px;\n color:#0e88eb;\n font-weight:bolder;\n display:inline-block;\n padding-left:10px;\n border-left:5px solid #0e88eb;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n\tfont-size: 18px;\n \tcolor: #0e88eb;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n font-size: 18px;\n color: #0e88eb;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n font-size: 15px;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice .multiquote-1 {\n font-style:normal;\n border-left:none;\n padding:10px;\n position:relative;\n line-height:1.8;\n border-radius:0px 0px 10px 10px;\n color: #0e88eb;\n background:#fff;\n box-shadow:#84A1A8 0px 10px 15px;\n}\n#nice .multiquote-1:before {\n content:\"★ \";\n display:inline;\n color: #0e88eb;\n font-size:4em;\n font-family:Arial,serif;\n line-height:1em;\n font-weight:700;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n color: #0e88eb;\n font-size:15px;\n display:inline;\n}\n#nice .multiquote-1:after {\n content:\"”\";\n float:right;\n display:inline;\n color:#0e88eb;\n font-size:3em;\n line-height:1em;\n font-weight:500;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #0e88eb;\n border-bottom: 0px solid #ff3502;\n font-family:STHeitiSC-Light;\n}\n\n/* 加粗 */\n#nice strong {\n font-weight: border;\n color: #0e88eb;\n}\n\n/* 斜体 */\n#nice em {\n color: #0e88eb;\n letter-spacing:0.3em;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #0e88eb;\n letter-spacing:0.3em;\n}\n\n/* 删除线 */\n#nice del {\n}\n \n/* 分隔线\n * 粗细、样式和颜色\n * border-top:1px solid #3e3e3e;\n */\n#nice hr {\n height:1px;\n padding:0;\n border:none;\n border-top:medium solidid #333;\n text-align:center;\n background-image:linear-gradient(to right,rgba(248,57,41,0),#0e88eb,rgba(248,57,41,0));\n}\n\n/* 图片\n * 宽度 width:80%;\n * 居中 margin:0 auto;\n * 居左 margin:0 0;\n */\n#nice img {\n border-radius:0px 0px 5px 5px;\n display:block;\n margin:20px auto;\n width:85%;\n height:100%;\n object-fit:contain;\n box-shadow:#84A1A8 0px 10px 15px;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display:block;\n font-size:12px;\n font-family:PingFangSC-Light;\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color:/*自定义样式,实时生效*/\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 15px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #2d59b3;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #6a88c5;\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #0e88eb;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #0e88eb;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n color: #082a71;\n font-size:12px;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}\n\n/* 滑动图片\n */\n#nice .imageflow-img {\n display: inline-block;\n width:100%;\n margin-bottom: 0;\n}", - "article": "https://mp.weixin.qq.com/s/hEQA4GEFycBjvScko4DeqQ", - "html": null, - "exampleHtml": null, - "authorName": "夜尽天明", - "authorEmail": null, - "description": "科技蓝的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21248, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:39.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - }, - { - "themeId": "62", - "itemId": null, - "name": "WeChat-Format", - "cover": "https://files.mdnice.com/pic/7c426155-27e8-493b-a483-ce966884a8b9.png", - "css": "/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n line-height: 1.6;\n color: #3f3f3f;\n font-size: 16px;\n margin: 10px 0px;\n}\n\n/* 一级标题 */\n#nice h1 {\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n margin: 80px 10px 40px 10px;\n text-align: center;\n font-weight: normal;\n color: #3f3f3f;\n font-size: 140%;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 40px 0px 20px 0px;\n font-weight: bold;\n line-height: 1.5;\n color: #3f3f3f;\n font-size: 120%;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice .multiquote-1 {\n color: rgb(91,91,91);\n border-left: 3px solid rgb(158,158,158);\n background: rgba(158, 158, 158, 0.1);\n padding: 1px 0 1px 10px;\n margin: 20px 0px;\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n color: #3f3f3f;\n line-height: 1.5;\n font-size: 16px;\n margin: 10px;\n padding: 0px;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #ff3502;\n border-bottom: 1px solid #ff3502;\n}\n\n/* 加粗 */\n#nice strong {\n color: #ff3502;\n line-height: 1.5;\n font-size: 16px;\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n background: #f8f5ec;\n color: #ff3502;\n line-height: 1.5;\n font-size: 90%;\n padding: 3px 5px;\n border-radius: 2px;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #ff3502;\n font-size: 16px;\n line-height: 1.5;\n font-weight: normal;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #ff3502;\n font-weight: normal;\n}\n\n/* \"参考资料\"四个字 */\n#nice .footnotes-sep {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}", - "article": "https://mp.weixin.qq.com/s?__biz=MzIwNTA4NzI1Mw==&mid=2247485061&idx=1&sn=36047ec080d1daaf63d733d18e546ba7&source=41#wechat_redirect", - "html": null, - "exampleHtml": null, - "authorName": "画手", - "authorEmail": null, - "description": "Wechat Format的作者很懒,暂时没有描述", - "sort": null, - "checked": true, - "userThemeId": 21249, - "userThemeType": 0, - "fixThemeId": null, - "price": null, - "tmpPrice": null, - "isPublic": true, - "createTime": "2020-04-04T12:14:25.000+0000", - "updateTime": "2020-11-21T23:11:44.000+0000" - } -] diff --git a/document/mind/cms.emmx b/document/mind/cms.emmx deleted file mode 100644 index b63e075e..00000000 Binary files a/document/mind/cms.emmx and /dev/null differ diff --git a/document/mind/oms.emmx b/document/mind/oms.emmx deleted file mode 100644 index e44e45d2..00000000 Binary files a/document/mind/oms.emmx and /dev/null differ diff --git a/document/mind/pms.emmx b/document/mind/pms.emmx deleted file mode 100644 index e812ba89..00000000 Binary files a/document/mind/pms.emmx and /dev/null differ diff --git a/document/mind/sms.emmx b/document/mind/sms.emmx deleted file mode 100644 index c2eede7b..00000000 Binary files a/document/mind/sms.emmx and /dev/null differ diff --git a/document/mind/ums.emmx b/document/mind/ums.emmx deleted file mode 100644 index 254d7ee9..00000000 Binary files a/document/mind/ums.emmx and /dev/null differ diff --git a/document/navicat/mall-ref.sql b/document/navicat/mall-ref.sql deleted file mode 100644 index 12925648..00000000 --- a/document/navicat/mall-ref.sql +++ /dev/null @@ -1,1824 +0,0 @@ -/*==============================================================*/ -/* DBMS name: MySQL 5.0 */ -/* Created on: 2020/4/15 14:40:15 */ -/*==============================================================*/ - - -drop table if exists cms_help; - -drop table if exists cms_help_category; - -drop table if exists cms_member_report; - -drop table if exists cms_prefrence_area; - -drop table if exists cms_prefrence_area_product_relation; - -drop table if exists cms_subject; - -drop table if exists cms_subject_category; - -drop table if exists cms_subject_comment; - -drop table if exists cms_subject_product_relation; - -drop table if exists cms_topic; - -drop table if exists cms_topic_category; - -drop table if exists cms_topic_comment; - -drop table if exists oms_cart_item; - -drop table if exists oms_company_address; - -drop table if exists oms_order; - -drop table if exists oms_order_item; - -drop table if exists oms_order_operate_history; - -drop table if exists oms_order_return_apply; - -drop table if exists oms_order_return_reason; - -drop table if exists oms_order_setting; - -drop table if exists pms_album; - -drop table if exists pms_album_pic; - -drop table if exists pms_brand; - -drop table if exists pms_comment; - -drop table if exists pms_comment_replay; - -drop table if exists pms_feight_template; - -drop table if exists pms_member_price; - -drop table if exists pms_product; - -drop table if exists pms_product_attribute; - -drop table if exists pms_product_attribute_category; - -drop table if exists pms_product_attribute_value; - -drop table if exists pms_product_category; - -drop table if exists pms_product_category_attribute_relation; - -drop table if exists pms_product_full_reduction; - -drop table if exists pms_product_ladder; - -drop table if exists pms_product_operate_log; - -drop table if exists pms_product_vertify_record; - -drop table if exists pms_sku_stock; - -drop table if exists sms_coupon; - -drop table if exists sms_coupon_history; - -drop table if exists sms_coupon_product_category_relation; - -drop table if exists sms_coupon_product_relation; - -drop table if exists sms_flash_promotion; - -drop table if exists sms_flash_promotion_log; - -drop table if exists sms_flash_promotion_product_relation; - -drop table if exists sms_flash_promotion_session; - -drop table if exists sms_home_advertise; - -drop table if exists sms_home_brand; - -drop table if exists sms_home_new_product; - -drop table if exists sms_home_recommend_product; - -drop table if exists sms_home_recommend_subject; - -drop table if exists ums_admin; - -drop table if exists ums_admin_login_log; - -drop table if exists ums_admin_permission_relation; - -drop table if exists ums_admin_role_relation; - -drop table if exists ums_growth_change_history; - -drop table if exists ums_integration_change_history; - -drop table if exists ums_integration_consume_setting; - -drop table if exists ums_member; - -drop table if exists ums_member_level; - -drop table if exists ums_member_login_log; - -drop table if exists ums_member_member_tag_relation; - -drop table if exists ums_member_product_category_relation; - -drop table if exists ums_member_receive_address; - -drop table if exists ums_member_rule_setting; - -drop table if exists ums_member_statistics_info; - -drop table if exists ums_member_tag; - -drop table if exists ums_member_task; - -drop table if exists ums_menu; - -drop table if exists ums_permission; - -drop table if exists ums_resource; - -drop table if exists ums_resource_category; - -drop table if exists ums_role; - -drop table if exists ums_role_menu_relation; - -drop table if exists ums_role_permission_relation; - -drop table if exists ums_role_resource_relation; - -/*==============================================================*/ -/* Table: cms_help */ -/*==============================================================*/ -create table cms_help -( - id bigint not null auto_increment, - category_id bigint, - icon varchar(500), - title varchar(100), - show_status int(1), - create_time datetime, - read_count int(1), - content text, - primary key (id) -); - -alter table cms_help comment '帮助表'; - -/*==============================================================*/ -/* Table: cms_help_category */ -/*==============================================================*/ -create table cms_help_category -( - id bigint not null auto_increment, - name varchar(100), - icon varchar(500) comment '分类图标', - help_count int comment '专题数量', - show_status int(2), - sort int, - primary key (id) -); - -alter table cms_help_category comment '帮助分类表'; - -/*==============================================================*/ -/* Table: cms_member_report */ -/*==============================================================*/ -create table cms_member_report -( - id bigint, - report_type int(1) comment '举报类型:0->商品评价;1->话题内容;2->用户评论', - report_member_name varchar(100) comment '举报人', - create_time datetime, - report_object varchar(100), - report_status int(1) comment '举报状态:0->未处理;1->已处理', - handle_status int(1) comment '处理结果:0->无效;1->有效;2->恶意', - note varchar(200) -); - -alter table cms_member_report comment '用户举报表'; - -/*==============================================================*/ -/* Table: cms_prefrence_area */ -/*==============================================================*/ -create table cms_prefrence_area -( - id bigint not null auto_increment, - name varchar(255), - sub_title varchar(255), - pic varbinary(500) comment '展示图片', - sort int, - show_status int(1), - primary key (id) -); - -alter table cms_prefrence_area comment '优选专区'; - -/*==============================================================*/ -/* Table: cms_prefrence_area_product_relation */ -/*==============================================================*/ -create table cms_prefrence_area_product_relation -( - id bigint not null auto_increment, - prefrence_area_id bigint, - product_id bigint, - primary key (id) -); - -alter table cms_prefrence_area_product_relation comment '优选专区和产品关系表'; - -/*==============================================================*/ -/* Table: cms_subject */ -/*==============================================================*/ -create table cms_subject -( - id bigint not null auto_increment, - category_id bigint, - title varchar(100), - pic varchar(500) comment '专题主图', - product_count int comment '关联产品数量', - recommend_status int(1), - create_time datetime, - collect_count int, - read_count int, - comment_count int, - album_pics varchar(1000) comment '画册图片用逗号分割', - description varchar(1000), - show_status int(1) comment '显示状态:0->不显示;1->显示', - content text, - forward_count int comment '转发数', - category_name varchar(200) comment '专题分类名称', - primary key (id) -); - -alter table cms_subject comment '专题表'; - -/*==============================================================*/ -/* Table: cms_subject_category */ -/*==============================================================*/ -create table cms_subject_category -( - id bigint not null auto_increment, - name varchar(100), - icon varchar(500) comment '分类图标', - subject_count int comment '专题数量', - show_status int(2), - sort int, - primary key (id) -); - -alter table cms_subject_category comment '专题分类表'; - -/*==============================================================*/ -/* Table: cms_subject_comment */ -/*==============================================================*/ -create table cms_subject_comment -( - id bigint not null auto_increment, - subject_id bigint, - member_nick_name varchar(255), - member_icon varchar(255), - content varchar(1000), - create_time datetime, - show_status int(1), - primary key (id) -); - -alter table cms_subject_comment comment '专题评论表'; - -/*==============================================================*/ -/* Table: cms_subject_product_relation */ -/*==============================================================*/ -create table cms_subject_product_relation -( - id bigint not null auto_increment, - subject_id bigint, - product_id bigint, - primary key (id) -); - -alter table cms_subject_product_relation comment '专题商品关系表'; - -/*==============================================================*/ -/* Table: cms_topic */ -/*==============================================================*/ -create table cms_topic -( - id bigint not null auto_increment, - category_id bigint, - name varchar(255), - create_time datetime, - start_time datetime, - end_time datetime, - attend_count int comment '参与人数', - attention_count int comment '关注人数', - read_count int, - award_name varchar(100) comment '奖品名称', - attend_type varchar(100) comment '参与方式', - content text comment '话题内容', - primary key (id) -); - -alter table cms_topic comment '话题表'; - -/*==============================================================*/ -/* Table: cms_topic_category */ -/*==============================================================*/ -create table cms_topic_category -( - id bigint not null auto_increment, - name varchar(100), - icon varchar(500) comment '分类图标', - subject_count int comment '专题数量', - show_status int(2), - sort int, - primary key (id) -); - -alter table cms_topic_category comment '话题分类表'; - -/*==============================================================*/ -/* Table: cms_topic_comment */ -/*==============================================================*/ -create table cms_topic_comment -( - id bigint not null auto_increment, - member_nick_name varchar(255), - topic_id bigint, - member_icon varchar(255), - content varchar(1000), - create_time datetime, - show_status int(1), - primary key (id) -); - -alter table cms_topic_comment comment '专题评论表'; - -/*==============================================================*/ -/* Table: oms_cart_item */ -/*==============================================================*/ -create table oms_cart_item -( - id bigint not null auto_increment, - product_id bigint, - product_sku_id bigint, - member_id bigint, - quantity int comment '购买数量', - price decimal(10,2) comment '添加到购物车的价格', - product_pic varchar(1000) comment '商品主图', - product_name varchar(500) comment '商品名称', - product_brand varchar(200), - product_sn varchar(200), - product_sub_title varchar(500) comment '商品副标题(卖点)', - product_sku_code varchar(200) comment '商品sku条码', - member_nickname varchar(500) comment '会员昵称', - create_date datetime comment '创建时间', - modify_date datetime comment '修改时间', - delete_status int(1) default 0 comment '是否删除', - product_category_id bigint comment '商品的分类', - product_attr varchar(500) comment '商品销售属性:[{"key":"颜色","value":"银色"},{"key":"容量","value":"4G"}]', - primary key (id) -); - -alter table oms_cart_item comment '购物车表'; - -/*==============================================================*/ -/* Table: oms_company_address */ -/*==============================================================*/ -create table oms_company_address -( - id bigint not null auto_increment, - address_name varchar(200) comment '地址名称', - send_status int(1) comment '默认发货地址:0->否;1->是', - receive_status int(1) comment '是否默认收货地址:0->否;1->是', - name varchar(64) comment '收发货人姓名', - phone varchar(64) comment '收货人电话', - province varchar(64) comment '省/直辖市', - city varchar(64) comment '市', - region varchar(64) comment '区', - detail_address varchar(200) comment '详细地址', - primary key (id) -); - -alter table oms_company_address comment '公司收发货地址表'; - -/*==============================================================*/ -/* Table: oms_order */ -/*==============================================================*/ -create table oms_order -( - id bigint not null auto_increment comment '订单id', - member_id bigint not null, - coupon_id bigint, - order_sn varchar(64) comment '订单编号', - create_time datetime comment '提交时间', - member_username varchar(64) comment '用户帐号', - total_amount decimal(10,2) comment '订单总金额', - pay_amount decimal(10,2) comment '应付金额(实际支付金额)', - freight_amount decimal(10,2) comment '运费金额', - promotion_amount decimal(10,2) comment '促销优化金额(促销价、满减、阶梯价)', - integration_amount decimal(10,2) comment '积分抵扣金额', - coupon_amount decimal(10,2) comment '优惠券抵扣金额', - discount_amount decimal(10,2) comment '管理员后台调整订单使用的折扣金额', - pay_type int(1) comment '支付方式:0->未支付;1->支付宝;2->微信', - source_type int(1) comment '订单来源:0->PC订单;1->app订单', - status int(1) comment '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单', - order_type int(1) comment '订单类型:0->正常订单;1->秒杀订单', - delivery_company varchar(64) comment '物流公司(配送方式)', - delivery_sn varchar(64) comment '物流单号', - auto_confirm_day int comment '自动确认时间(天)', - integration int comment '可以获得的积分', - growth int comment '可以活动的成长值', - promotion_info varchar(100) comment '活动信息', - bill_type int(1) comment '发票类型:0->不开发票;1->电子发票;2->纸质发票', - bill_header varchar(200) comment '发票抬头', - bill_content varchar(200) comment '发票内容', - bill_receiver_phone varchar(32) comment '收票人电话', - bill_receiver_email varchar(64) comment '收票人邮箱', - receiver_name varchar(100) not null comment '收货人姓名', - receiver_phone varchar(32) not null comment '收货人电话', - receiver_post_code varchar(32) comment '收货人邮编', - receiver_province varchar(32) comment '省份/直辖市', - receiver_city varchar(32) comment '城市', - receiver_region varchar(32) comment '区', - receiver_detail_address varchar(200) comment '详细地址', - note varchar(500) comment '订单备注', - confirm_status int(1) comment '确认收货状态:0->未确认;1->已确认', - delete_status int(1) not null default 0 comment '删除状态:0->未删除;1->已删除', - use_integration int comment '下单时使用的积分', - payment_time datetime comment '支付时间', - delivery_time datetime comment '发货时间', - receive_time datetime comment '确认收货时间', - comment_time datetime comment '评价时间', - modify_time datetime comment '修改时间', - primary key (id) -); - -alter table oms_order comment '订单表'; - -/*==============================================================*/ -/* Table: oms_order_item */ -/*==============================================================*/ -create table oms_order_item -( - id bigint not null auto_increment, - order_id bigint comment '订单id', - order_sn varchar(64) comment '订单编号', - product_id bigint, - product_pic varchar(500), - product_name varchar(200), - product_brand varchar(200), - product_sn varchar(64), - product_price decimal(10,2) comment '销售价格', - product_quantity int comment '购买数量', - product_sku_id bigint comment '商品sku编号', - product_sku_code varchar(50) comment '商品sku条码', - product_category_id bigint comment '商品分类id', - promotion_name varchar(200) comment '商品促销名称', - promotion_amount decimal(10,2) comment '商品促销分解金额', - coupon_amount decimal(10,2) comment '优惠券优惠分解金额', - integration_amount decimal(10,2) comment '积分优惠分解金额', - real_amount decimal(10,2) comment '该商品经过优惠后的分解金额', - gift_integration int not null default 0 comment '商品赠送积分', - gift_growth int not null default 0 comment '商品赠送成长值', - product_attr varchar(500) comment '商品销售属性:[{"key":"颜色","value":"颜色"},{"key":"容量","value":"4G"}]', - primary key (id) -); - -alter table oms_order_item comment '订单中所包含的商品'; - -/*==============================================================*/ -/* Table: oms_order_operate_history */ -/*==============================================================*/ -create table oms_order_operate_history -( - id bigint not null auto_increment, - order_id bigint comment '订单id', - operate_man varchar(100) comment '操作人:用户;系统;后台管理员', - create_time datetime comment '操作时间', - order_status int(1) comment '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单', - note varchar(500) comment '备注', - primary key (id) -); - -alter table oms_order_operate_history comment '订单操作历史记录'; - -/*==============================================================*/ -/* Table: oms_order_return_apply */ -/*==============================================================*/ -create table oms_order_return_apply -( - id bigint not null auto_increment, - order_id bigint comment '订单id', - company_address_id bigint comment '收货地址表id', - product_id bigint comment '退货商品id', - order_sn varchar(64) comment '订单编号', - create_time datetime comment '申请时间', - member_username varchar(64) comment '会员用户名', - return_amount decimal(10,2) comment '退款金额', - return_name varchar(100) comment '退货人姓名', - return_phone varchar(100) comment '退货人电话', - status int(1) comment '申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝', - handle_time datetime comment '处理时间', - product_pic varchar(500) comment '商品图片', - product_name varchar(200) comment '商品名称', - product_brand varchar(200) comment '商品品牌', - product_attr varchar(500) comment '商品销售属性:颜色:红色;尺码:xl;', - product_count int comment '退货数量', - product_price decimal(10,2) comment '商品单价', - product_real_price decimal(10,2) comment '商品实际支付单价', - reason varchar(200) comment '原因', - description varchar(500) comment '描述', - proof_pics varchar(1000) comment '凭证图片,以逗号隔开', - handle_note varchar(500) comment '处理备注', - handle_man varchar(100) comment '处理人员', - receive_man varchar(100) comment '收货人', - receive_time datetime comment '收货时间', - receive_note varchar(500) comment '收货备注', - primary key (id) -); - -alter table oms_order_return_apply comment '订单退货申请'; - -/*==============================================================*/ -/* Table: oms_order_return_reason */ -/*==============================================================*/ -create table oms_order_return_reason -( - id bigint not null auto_increment, - name varchar(100) comment '退货类型', - sort int, - status int(1) comment '状态:0->不启用;1->启用', - create_time datetime comment '添加时间', - primary key (id) -); - -alter table oms_order_return_reason comment '退货原因表'; - -/*==============================================================*/ -/* Table: oms_order_setting */ -/*==============================================================*/ -create table oms_order_setting -( - id bigint not null auto_increment, - flash_order_overtime int comment '秒杀订单超时关闭时间(分)', - normal_order_overtime int comment '正常订单超时时间(分)', - confirm_overtime int comment '发货后自动确认收货时间(天)', - finish_overtime int comment '自动完成交易时间,不能申请售后(天)', - comment_overtime int comment '订单完成后自动好评时间(天)', - primary key (id) -); - -alter table oms_order_setting comment '订单设置表'; - -/*==============================================================*/ -/* Table: pms_album */ -/*==============================================================*/ -create table pms_album -( - id bigint not null auto_increment, - name varchar(64), - cover_pic varchar(1000), - pic_count int, - sort int, - description varchar(1000), - primary key (id) -); - -alter table pms_album comment '相册表'; - -/*==============================================================*/ -/* Table: pms_album_pic */ -/*==============================================================*/ -create table pms_album_pic -( - id bigint not null auto_increment, - album_id bigint, - pic varchar(1000), - primary key (id) -); - -alter table pms_album_pic comment '画册图片表'; - -/*==============================================================*/ -/* Table: pms_brand */ -/*==============================================================*/ -create table pms_brand -( - id bigint not null auto_increment, - name varchar(64), - first_letter varchar(8) comment '首字母', - sort int, - factory_status int(1) comment '是否为品牌制造商:0->不是;1->是', - show_status int(1), - product_count int comment '产品数量', - product_comment_count int comment '产品评论数量', - logo varchar(255) comment '品牌logo', - big_pic varchar(255) comment '专区大图', - brand_story text comment '品牌故事', - primary key (id) -); - -alter table pms_brand comment '品牌表'; - -/*==============================================================*/ -/* Table: pms_comment */ -/*==============================================================*/ -create table pms_comment -( - id bigint not null auto_increment, - product_id bigint, - member_nick_name varchar(255), - product_name varchar(255), - star int(3) comment '评价星数:0->5', - member_ip varchar(64) comment '评价的ip', - create_time datetime, - show_status int(1), - product_attribute varchar(255) comment '购买时的商品属性', - collect_couont int, - read_count int, - content text, - pics varchar(1000) comment '上传图片地址,以逗号隔开', - member_icon varchar(255) comment '评论用户头像', - replay_count int, - primary key (id) -); - -alter table pms_comment comment '商品评价表'; - -/*==============================================================*/ -/* Table: pms_comment_replay */ -/*==============================================================*/ -create table pms_comment_replay -( - id bigint not null auto_increment, - comment_id bigint, - member_nick_name varchar(255), - member_icon varchar(255), - content varchar(1000), - create_time datetime, - type int(1) comment '评论人员类型;0->会员;1->管理员', - primary key (id) -); - -alter table pms_comment_replay comment '产品评价回复表'; - -/*==============================================================*/ -/* Table: pms_feight_template */ -/*==============================================================*/ -create table pms_feight_template -( - id bigint not null auto_increment, - name varchar(64), - charge_type int(1) comment '计费类型:0->按重量;1->按件数', - first_weight decimal(10,2) comment '首重kg', - first_fee decimal(10,2) comment '首费(元)', - continue_weight decimal(10,2), - continme_fee decimal(10,2), - dest varchar(255) comment '目的地(省、市)', - primary key (id) -); - -alter table pms_feight_template comment '运费模版'; - -/*==============================================================*/ -/* Table: pms_member_price */ -/*==============================================================*/ -create table pms_member_price -( - id bigint not null auto_increment, - product_id bigint, - member_level_id bigint, - member_price decimal(10,2) comment '会员价格', - member_level_name varchar(100), - primary key (id) -); - -alter table pms_member_price comment '商品会员价格表'; - -/*==============================================================*/ -/* Table: pms_product */ -/*==============================================================*/ -create table pms_product -( - id bigint not null auto_increment, - brand_id bigint, - product_category_id bigint, - feight_template_id bigint, - product_attribute_category_id bigint, - name varchar(64) not null, - pic varchar(255), - product_sn varchar(64) not null comment '货号', - delete_status int(1) comment '删除状态:0->未删除;1->已删除', - publish_status int(1) comment '上架状态:0->下架;1->上架', - new_status int(1) comment '新品状态:0->不是新品;1->新品', - recommand_status int(1) comment '推荐状态;0->不推荐;1->推荐', - verify_status int(1) comment '审核状态:0->未审核;1->审核通过', - sort int comment '排序', - sale int comment '销量', - price decimal(10,2), - promotion_price decimal(10,2) comment '促销价格', - gift_growth int default 0 comment '赠送的成长值', - gift_point int default 0 comment '赠送的积分', - use_point_limit int comment '限制使用的积分数', - sub_title varchar(255) comment '副标题', - description text comment '商品描述', - original_price decimal(10,2) comment '市场价', - stock int comment '库存', - low_stock int comment '库存预警值', - unit varchar(16) comment '单位', - weight decimal(10,2) comment '商品重量,默认为克', - preview_status int(1) comment '是否为预告商品:0->不是;1->是', - service_ids varchar(64) comment '以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮', - keywords varchar(255), - note varchar(255), - album_pics varchar(255) comment '画册图片,连产品图片限制为5张,以逗号分割', - detail_title varchar(255), - detail_desc text, - detail_html text comment '产品详情网页内容', - detail_mobile_html text comment '移动端网页详情', - promotion_start_time datetime comment '促销开始时间', - promotion_end_time datetime comment '促销结束时间', - promotion_per_limit int comment '活动限购数量', - promotion_type int(1) comment '促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购', - product_category_name varchar(255) comment '产品分类名称', - brand_name varchar(255) comment '品牌名称', - primary key (id) -); - -alter table pms_product comment '商品信息'; - -/*==============================================================*/ -/* Table: pms_product_attribute */ -/*==============================================================*/ -create table pms_product_attribute -( - id bigint not null auto_increment, - product_attribute_category_id bigint, - name varchar(64), - select_type int(1) comment '属性选择类型:0->唯一;1->单选;2->多选;对应属性和参数意义不同;', - input_type int(1) comment '属性录入方式:0->手工录入;1->从列表中选取', - input_list varchar(255) comment '可选值列表,以逗号隔开', - sort int comment '排序字段:最高的可以单独上传图片', - filter_type int(1) comment '分类筛选样式:1->普通;1->颜色', - search_type int(1) comment '检索类型;0->不需要进行检索;1->关键字检索;2->范围检索', - related_status int(1) comment '相同属性产品是否关联;0->不关联;1->关联', - hand_add_status int(1) comment '是否支持手动新增;0->不支持;1->支持', - type int(1) comment '属性的类型;0->规格;1->参数', - primary key (id) -); - -alter table pms_product_attribute comment '商品属性参数表'; - -/*==============================================================*/ -/* Table: pms_product_attribute_category */ -/*==============================================================*/ -create table pms_product_attribute_category -( - id bigint not null auto_increment, - name varchar(64), - attribute_count int comment '属性数量', - param_count int comment '参数数量', - primary key (id) -); - -alter table pms_product_attribute_category comment '产品属性分类表'; - -/*==============================================================*/ -/* Table: pms_product_attribute_value */ -/*==============================================================*/ -create table pms_product_attribute_value -( - id bigint not null auto_increment, - product_id bigint, - product_attribute_id bigint, - value varchar(64) comment '手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开', - primary key (id) -); - -alter table pms_product_attribute_value comment '存储产品参数信息的表'; - -/*==============================================================*/ -/* Table: pms_product_category */ -/*==============================================================*/ -create table pms_product_category -( - id bigint not null auto_increment, - parent_id bigint comment '上机分类的编号:0表示一级分类', - name varchar(64), - level int(1) comment '分类级别:0->1级;1->2级', - product_count int, - product_unit varchar(64), - nav_status int(1) comment '是否显示在导航栏:0->不显示;1->显示', - show_status int(1) comment '显示状态:0->不显示;1->显示', - sort int, - icon varchar(255) comment '图标', - keywords varchar(255), - description text comment '描述', - primary key (id) -); - -alter table pms_product_category comment '产品分类'; - -/*==============================================================*/ -/* Table: pms_product_category_attribute_relation */ -/*==============================================================*/ -create table pms_product_category_attribute_relation -( - id bigint not null auto_increment, - product_category_id bigint, - product_attribute_id bigint, - primary key (id) -); - -alter table pms_product_category_attribute_relation comment '产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)'; - -/*==============================================================*/ -/* Table: pms_product_full_reduction */ -/*==============================================================*/ -create table pms_product_full_reduction -( - id bigint not null auto_increment, - product_id bigint, - full_price decimal(10,2), - reduce_price decimal(10,2), - primary key (id) -); - -alter table pms_product_full_reduction comment '产品满减表(只针对同商品)'; - -/*==============================================================*/ -/* Table: pms_product_ladder */ -/*==============================================================*/ -create table pms_product_ladder -( - id bigint not null auto_increment, - product_id bigint, - count int comment '满足的商品数量', - discount decimal(10,2) comment '折扣', - price decimal(10,2) comment '折后价格', - primary key (id) -); - -alter table pms_product_ladder comment '产品阶梯价格表(只针对同商品)'; - -/*==============================================================*/ -/* Table: pms_product_operate_log */ -/*==============================================================*/ -create table pms_product_operate_log -( - id bigint not null auto_increment, - product_id bigint, - price_old decimal(10,2), - price_new decimal(10,2), - sale_price_old decimal(10,2), - sale_price_new decimal(10,2), - gift_point_old int comment '赠送的积分', - gift_point_new int, - use_point_limit_old int, - use_point_limit_new int, - operate_man varchar(64) comment '操作人', - create_time datetime, - primary key (id) -); - -/*==============================================================*/ -/* Table: pms_product_vertify_record */ -/*==============================================================*/ -create table pms_product_vertify_record -( - id bigint not null auto_increment, - product_id bigint, - create_time datetime, - vertify_man varchar(64) comment '审核人', - status int(1) comment '审核后的状态:0->未通过;2->已通过', - detail varchar(255) comment '反馈详情', - primary key (id) -); - -alter table pms_product_vertify_record comment '商品审核记录'; - -/*==============================================================*/ -/* Table: pms_sku_stock */ -/*==============================================================*/ -create table pms_sku_stock -( - id bigint not null auto_increment, - product_id bigint, - sku_code varchar(64) not null comment 'sku编码', - price decimal(10,2), - stock int default 0 comment '库存', - low_stock int comment '预警库存', - pic varchar(255) comment '展示图片', - sale int comment '销量', - promotion_price decimal(10,2) comment '单品促销价格', - lock_stock int default 0 comment '锁定库存', - sp_data varchar(500) comment '商品销售属性,json格式', - primary key (id) -); - -alter table pms_sku_stock comment 'sku的库存'; - -/*==============================================================*/ -/* Table: sms_coupon */ -/*==============================================================*/ -create table sms_coupon -( - id bigint not null auto_increment, - type int(1) comment '优惠卷类型;0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠券', - name varchar(100), - platform int(1) comment '使用平台:0->全部;1->移动;2->PC', - count int comment '数量', - amount decimal(10,2) comment '金额', - per_limit int comment '每人限领张数', - min_point decimal(10,2) comment '使用门槛;0表示无门槛', - start_time datetime, - end_time datetime, - use_type int(1) comment '使用类型:0->全场通用;1->指定分类;2->指定商品', - note varchar(200) comment '备注', - publish_count int comment '发行数量', - use_count int comment '已使用数量', - receive_count int comment '领取数量', - enable_time datetime comment '可以领取的日期', - code varchar(64) comment '优惠码', - member_level int(1) comment '可领取的会员类型:0->无限时', - primary key (id) -); - -alter table sms_coupon comment '优惠卷表'; - -/*==============================================================*/ -/* Table: sms_coupon_history */ -/*==============================================================*/ -create table sms_coupon_history -( - id bigint not null auto_increment, - coupon_id bigint, - member_id bigint, - order_id bigint comment '订单id', - coupon_code varchar(64), - member_nickname varchar(64) comment '领取人昵称', - get_type int(1) comment '获取类型:0->后台赠送;1->主动获取', - create_time datetime, - use_status int(1) comment '使用状态:0->未使用;1->已使用;2->已过期', - use_time datetime comment '使用时间', - order_sn varchar(100) comment '订单号码', - primary key (id) -); - -alter table sms_coupon_history comment '优惠券使用、领取历史表'; - -/*==============================================================*/ -/* Table: sms_coupon_product_category_relation */ -/*==============================================================*/ -create table sms_coupon_product_category_relation -( - id bigint not null auto_increment, - coupon_id bigint, - product_category_id bigint, - product_category_name varchar(200) comment '产品分类名称', - parent_category_name varchar(200) comment '父分类名称', - primary key (id) -); - -alter table sms_coupon_product_category_relation comment '优惠券和产品分类关系表'; - -/*==============================================================*/ -/* Table: sms_coupon_product_relation */ -/*==============================================================*/ -create table sms_coupon_product_relation -( - id bigint not null auto_increment, - coupon_id bigint, - product_id bigint, - product_name varchar(500) comment '商品名称', - product_sn varchar(200) comment '商品编码', - primary key (id) -); - -alter table sms_coupon_product_relation comment '优惠券和产品的关系表'; - -/*==============================================================*/ -/* Table: sms_flash_promotion */ -/*==============================================================*/ -create table sms_flash_promotion -( - id bigint not null auto_increment, - title varchar(200), - start_date date comment '开始日期', - end_date date comment '结束日期', - status int(1) comment '上下线状态', - create_time datetime comment '秒杀时间段名称', - primary key (id) -); - -alter table sms_flash_promotion comment '限时购表'; - -/*==============================================================*/ -/* Table: sms_flash_promotion_log */ -/*==============================================================*/ -create table sms_flash_promotion_log -( - id int not null auto_increment, - member_id bigint, - product_id bigint, - member_phone varchar(64), - product_name varchar(100), - subscribe_time datetime comment '会员订阅时间', - send_time datetime, - primary key (id) -); - -alter table sms_flash_promotion_log comment '限时购通知记录'; - -/*==============================================================*/ -/* Table: sms_flash_promotion_product_relation */ -/*==============================================================*/ -create table sms_flash_promotion_product_relation -( - id bigint not null auto_increment comment '编号', - flash_promotion_id bigint, - flash_promotion_session_id bigint comment '编号', - product_id bigint, - flash_promotion_price decimal(10,2) comment '限时购价格', - flash_promotion_count int comment '限时购数量', - flash_promotion_limit int comment '每人限购数量', - sort int comment '排序', - primary key (id) -); - -alter table sms_flash_promotion_product_relation comment '商品限时购与商品关系表'; - -/*==============================================================*/ -/* Table: sms_flash_promotion_session */ -/*==============================================================*/ -create table sms_flash_promotion_session -( - id bigint not null auto_increment comment '编号', - name varchar(200) comment '场次名称', - start_time time comment '每日开始时间', - end_time time comment '每日结束时间', - status int(1) comment '启用状态:0->不启用;1->启用', - create_time datetime comment '创建时间', - primary key (id) -); - -alter table sms_flash_promotion_session comment '限时购场次表'; - -/*==============================================================*/ -/* Table: sms_home_advertise */ -/*==============================================================*/ -create table sms_home_advertise -( - id bigint not null auto_increment, - name varchar(100), - type int(1) comment '轮播位置:0->PC首页轮播;1->app首页轮播', - pic varchar(500), - start_time datetime, - end_time datetime, - status int(1) comment '上下线状态:0->下线;1->上线', - click_count int comment '点击数', - order_count int comment '下单数', - url varchar(500) comment '链接地址', - note varchar(500) comment '备注', - sort int default 0 comment '排序', - primary key (id) -); - -alter table sms_home_advertise comment '首页轮播广告表'; - -/*==============================================================*/ -/* Table: sms_home_brand */ -/*==============================================================*/ -create table sms_home_brand -( - id bigint not null auto_increment, - brand_id bigint, - brand_name varchar(64), - recommend_status int(1), - sort int, - primary key (id) -); - -alter table sms_home_brand comment '首页推荐品牌表'; - -/*==============================================================*/ -/* Table: sms_home_new_product */ -/*==============================================================*/ -create table sms_home_new_product -( - id bigint not null auto_increment, - product_id bigint, - product_name varchar(64), - recommend_status int(1), - sort int(1), - primary key (id) -); - -alter table sms_home_new_product comment '新鲜好物表'; - -/*==============================================================*/ -/* Table: sms_home_recommend_product */ -/*==============================================================*/ -create table sms_home_recommend_product -( - id bigint not null auto_increment, - product_id bigint, - product_name varchar(64), - recommend_status int(1), - sort int(1), - primary key (id) -); - -alter table sms_home_recommend_product comment '人气推荐商品表'; - -/*==============================================================*/ -/* Table: sms_home_recommend_subject */ -/*==============================================================*/ -create table sms_home_recommend_subject -( - id bigint not null auto_increment, - subject_id bigint, - subject_name varchar(64), - recommend_status int(1), - sort int, - primary key (id) -); - -alter table sms_home_recommend_subject comment '首页推荐专题表'; - -/*==============================================================*/ -/* Table: ums_admin */ -/*==============================================================*/ -create table ums_admin -( - id bigint not null auto_increment, - username varchar(64) comment '用户名', - password varchar(64) comment '密码', - icon varchar(500) comment '头像', - email varchar(100) comment '邮箱', - nick_name varchar(200) comment '昵称', - note varchar(500) comment '备注信息', - create_time datetime comment '创建时间', - login_time datetime comment '最后登录时间', - status int(1) default 1 comment '帐号启用状态:0->禁用;1->启用', - primary key (id) -); - -alter table ums_admin comment '后台用户表'; - -/*==============================================================*/ -/* Table: ums_admin_login_log */ -/*==============================================================*/ -create table ums_admin_login_log -( - id bigint not null auto_increment, - admin_id bigint, - create_time datetime, - ip varchar(64), - address varchar(100), - user_agent varchar(100) comment '浏览器登录类型', - primary key (id) -); - -alter table ums_admin_login_log comment '后台用户登录日志表'; - -/*==============================================================*/ -/* Table: ums_admin_permission_relation */ -/*==============================================================*/ -create table ums_admin_permission_relation -( - id bigint not null auto_increment, - admin_id bigint, - permission_id bigint, - type int(1), - primary key (id) -); - -alter table ums_admin_permission_relation comment '后台用户和权限关系表(除角色中定义的权限以外的加减权限)'; - -/*==============================================================*/ -/* Table: ums_admin_role_relation */ -/*==============================================================*/ -create table ums_admin_role_relation -( - id bigint not null auto_increment, - admin_id bigint, - role_id bigint, - primary key (id) -); - -alter table ums_admin_role_relation comment '后台用户和角色关系表'; - -/*==============================================================*/ -/* Table: ums_growth_change_history */ -/*==============================================================*/ -create table ums_growth_change_history -( - id bigint not null auto_increment, - member_id bigint, - create_time datetime, - change_type int(1) comment '改变类型:0->增加;1->减少', - change_count int comment '积分改变数量', - operate_man varchar(100) comment '操作人员', - operate_note varchar(200) comment '操作备注', - source_type int(1) comment '积分来源:0->购物;1->管理员修改', - primary key (id) -); - -alter table ums_growth_change_history comment '成长值变化历史记录表'; - -/*==============================================================*/ -/* Table: ums_integration_change_history */ -/*==============================================================*/ -create table ums_integration_change_history -( - id bigint not null auto_increment, - member_id bigint, - create_time datetime, - change_type int(1) comment '改变类型:0->增加;1->减少', - change_count int comment '积分改变数量', - operate_man varchar(100) comment '操作人员', - operate_note varchar(200) comment '操作备注', - source_type int(1) comment '积分来源:0->购物;1->管理员修改', - primary key (id) -); - -alter table ums_integration_change_history comment '积分变化历史记录表'; - -/*==============================================================*/ -/* Table: ums_integration_consume_setting */ -/*==============================================================*/ -create table ums_integration_consume_setting -( - id bigint not null auto_increment, - deduction_per_amount int comment '每一元需要抵扣的积分数量', - max_percent_per_order int comment '每笔订单最高抵用百分比', - use_unit int comment '每次使用积分最小单位100', - coupon_status int(1) comment '是否可以和优惠券同用;0->不可以;1->可以', - primary key (id) -); - -alter table ums_integration_consume_setting comment '积分消费设置'; - -/*==============================================================*/ -/* Table: ums_member */ -/*==============================================================*/ -create table ums_member -( - id bigint not null auto_increment, - member_level_id bigint, - username varchar(64) comment '用户名', - password varchar(64) comment '密码', - nickname varchar(64) comment '昵称', - phone varchar(64) comment '手机号码', - status int(1) comment '帐号启用状态:0->禁用;1->启用', - create_time datetime comment '注册时间', - icon varchar(500) comment '头像', - gender int(1) comment '性别:0->未知;1->男;2->女', - birthday date comment '生日', - city varchar(64) comment '所做城市', - job varchar(100) comment '职业', - personalized_signature varchar(200) comment '个性签名', - source_type int(1) comment '用户来源', - integration int comment '积分', - growth int comment '成长值', - luckey_count int comment '剩余抽奖次数', - history_integration int comment '历史积分数量', - primary key (id) -); - -alter table ums_member comment '会员表'; - -/*==============================================================*/ -/* Table: ums_member_level */ -/*==============================================================*/ -create table ums_member_level -( - id bigint not null auto_increment, - name varchar(100), - growth_point int, - default_status int(1) comment '是否为默认等级:0->不是;1->是', - free_freight_point decimal(10,2) comment '免运费标准', - comment_growth_point int comment '每次评价获取的成长值', - priviledge_free_freight int(1) comment '是否有免邮特权', - priviledge_sign_in int(1) comment '是否有签到特权', - priviledge_comment int(1) comment '是否有评论获奖励特权', - priviledge_promotion int(1) comment '是否有专享活动特权', - priviledge_member_price int(1) comment '是否有会员价格特权', - priviledge_birthday int(1) comment '是否有生日特权', - note varchar(200), - primary key (id) -); - -alter table ums_member_level comment '会员等级表'; - -/*==============================================================*/ -/* Table: ums_member_login_log */ -/*==============================================================*/ -create table ums_member_login_log -( - id bigint not null auto_increment, - member_id bigint, - create_time datetime, - ip varchar(64), - city varchar(64), - login_type int(1) comment '登录类型:0->PC;1->android;2->ios;3->小程序', - province varchar(64), - primary key (id) -); - -alter table ums_member_login_log comment '会员登录记录'; - -/*==============================================================*/ -/* Table: ums_member_member_tag_relation */ -/*==============================================================*/ -create table ums_member_member_tag_relation -( - id bigint not null auto_increment, - member_id bigint, - tag_id bigint, - primary key (id) -); - -alter table ums_member_member_tag_relation comment '用户和标签关系表'; - -/*==============================================================*/ -/* Table: ums_member_product_category_relation */ -/*==============================================================*/ -create table ums_member_product_category_relation -( - id bigint not null auto_increment, - member_id bigint, - product_category_id bigint, - primary key (id) -); - -alter table ums_member_product_category_relation comment '会员与产品分类关系表(用户喜欢的分类)'; - -/*==============================================================*/ -/* Table: ums_member_receive_address */ -/*==============================================================*/ -create table ums_member_receive_address -( - id bigint not null auto_increment, - member_id bigint, - name varchar(100) comment '收货人名称', - phone_number varchar(64), - default_status int(1) comment '是否为默认', - post_code varchar(100) comment '邮政编码', - province varchar(100) comment '省份/直辖市', - city varchar(100) comment '城市', - region varchar(100) comment '区', - detail_address varchar(128) comment '详细地址(街道)', - primary key (id) -); - -alter table ums_member_receive_address comment '会员收货地址表'; - -/*==============================================================*/ -/* Table: ums_member_rule_setting */ -/*==============================================================*/ -create table ums_member_rule_setting -( - id bigint not null auto_increment, - continue_sign_day int comment '连续签到天数', - continue_sign_point int comment '连续签到赠送数量', - consume_per_point decimal(10,2) comment '每消费多少元获取1个点', - low_order_amount decimal(10,2) comment '最低获取点数的订单金额', - max_point_per_order int comment '每笔订单最高获取点数', - type int(1) comment '类型:0->积分规则;1->成长值规则', - primary key (id) -); - -alter table ums_member_rule_setting comment '会员积分成长规则表'; - -/*==============================================================*/ -/* Table: ums_member_statistics_info */ -/*==============================================================*/ -create table ums_member_statistics_info -( - id bigint not null auto_increment, - member_id bigint, - consume_amount decimal(10,2) comment '累计消费金额', - order_count int comment '订单数量', - coupon_count int comment '优惠券数量', - comment_count int comment '评价数', - return_order_count int comment '退货数量', - login_count int comment '登录次数', - attend_count int comment '关注数量', - fans_count int comment '粉丝数量', - collect_product_count int, - collect_subject_count int, - collect_topic_count int, - collect_comment_count int, - invite_friend_count int, - recent_order_time datetime comment '最后一次下订单时间', - primary key (id) -); - -alter table ums_member_statistics_info comment '会员统计信息'; - -/*==============================================================*/ -/* Table: ums_member_tag */ -/*==============================================================*/ -create table ums_member_tag -( - id bigint not null auto_increment, - name varchar(100), - finish_order_count int comment '自动打标签完成订单数量', - finish_order_amount decimal(10,2) comment '自动打标签完成订单金额', - primary key (id) -); - -alter table ums_member_tag comment '用户标签表'; - -/*==============================================================*/ -/* Table: ums_member_task */ -/*==============================================================*/ -create table ums_member_task -( - id bigint not null auto_increment, - name varchar(100), - growth int comment '赠送成长值', - intergration int comment '赠送积分', - type int(1) comment '任务类型:0->新手任务;1->日常任务', - primary key (id) -); - -alter table ums_member_task comment '会员任务表'; - -/*==============================================================*/ -/* Table: ums_menu */ -/*==============================================================*/ -create table ums_menu -( - id bigint not null auto_increment, - parent_id bigint comment '父级ID', - create_time datetime comment '创建时间', - title varchar(100) comment '菜单名称', - level int(4) comment '菜单级数', - sort int(4) comment '菜单排序', - name varchar(100) comment '前端名称', - icon varchar(200) comment '前端图标', - hidden int(1) comment '前端隐藏', - primary key (id) -); - -alter table ums_menu comment '后台菜单表'; - -/*==============================================================*/ -/* Table: ums_permission */ -/*==============================================================*/ -create table ums_permission -( - id bigint not null auto_increment, - pid bigint comment '父级权限id', - name varchar(100) comment '名称', - value varchar(200) comment '权限值', - icon varchar(500) comment '图标', - type int(1) comment '权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)', - uri varchar(200) comment '前端资源路径', - status int(1) comment '启用状态;0->禁用;1->启用', - create_time datetime comment '创建时间', - sort int comment '排序', - primary key (id) -); - -alter table ums_permission comment '后台用户权限表'; - -/*==============================================================*/ -/* Table: ums_resource */ -/*==============================================================*/ -create table ums_resource -( - id bigint not null auto_increment, - category_id bigint comment '资源分类ID', - create_time datetime comment '创建时间', - name varchar(200) comment '资源名称', - url varchar(200) comment '资源URL', - description varchar(500) comment '描述', - primary key (id) -); - -alter table ums_resource comment '后台资源表'; - -/*==============================================================*/ -/* Table: ums_resource_category */ -/*==============================================================*/ -create table ums_resource_category -( - id bigint not null auto_increment, - create_time datetime comment '创建时间', - name varchar(200) comment '分类名称', - sort int(4) comment '排序', - primary key (id) -); - -alter table ums_resource_category comment '资源分类表'; - -/*==============================================================*/ -/* Table: ums_role */ -/*==============================================================*/ -create table ums_role -( - id bigint not null auto_increment, - name varchar(100) comment '名称', - description varchar(500) comment '描述', - admin_count int comment '后台用户数量', - create_time datetime comment '创建时间', - status int(1) default 1 comment '启用状态:0->禁用;1->启用', - sort int default 0, - primary key (id) -); - -alter table ums_role comment '后台用户角色表'; - -/*==============================================================*/ -/* Table: ums_role_menu_relation */ -/*==============================================================*/ -create table ums_role_menu_relation -( - id bigint not null auto_increment, - role_id bigint comment '角色ID', - menu_id bigint comment '菜单ID', - primary key (id) -); - -alter table ums_role_menu_relation comment '后台角色菜单关系表'; - -/*==============================================================*/ -/* Table: ums_role_permission_relation */ -/*==============================================================*/ -create table ums_role_permission_relation -( - id bigint not null auto_increment, - role_id bigint, - permission_id bigint, - primary key (id) -); - -alter table ums_role_permission_relation comment '后台用户角色和权限关系表'; - -/*==============================================================*/ -/* Table: ums_role_resource_relation */ -/*==============================================================*/ -create table ums_role_resource_relation -( - id bigint not null auto_increment, - role_id bigint comment '角色ID', - resource_id bigint comment '资源ID', - primary key (id) -); - -alter table ums_role_resource_relation comment '后台角色资源关系表'; - -alter table cms_help add constraint FK_Reference_32 foreign key (category_id) - references cms_help_category (id) on delete restrict on update restrict; - -alter table cms_prefrence_area_product_relation add constraint FK_Reference_18 foreign key (prefrence_area_id) - references cms_prefrence_area (id) on delete restrict on update restrict; - -alter table cms_prefrence_area_product_relation add constraint FK_Reference_19 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table cms_subject add constraint FK_Reference_28 foreign key (category_id) - references cms_subject_category (id) on delete restrict on update restrict; - -alter table cms_subject_comment add constraint FK_Reference_29 foreign key (subject_id) - references cms_subject (id) on delete restrict on update restrict; - -alter table cms_subject_product_relation add constraint FK_Reference_26 foreign key (subject_id) - references cms_subject (id) on delete restrict on update restrict; - -alter table cms_subject_product_relation add constraint FK_Reference_27 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table cms_topic add constraint FK_Reference_31 foreign key (category_id) - references cms_topic_category (id) on delete restrict on update restrict; - -alter table cms_topic_comment add constraint FK_Reference_30 foreign key (topic_id) - references cms_topic (id) on delete restrict on update restrict; - -alter table oms_cart_item add constraint FK_Reference_65 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table oms_cart_item add constraint FK_Reference_66 foreign key (product_sku_id) - references pms_sku_stock (id) on delete restrict on update restrict; - -alter table oms_cart_item add constraint FK_Reference_67 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table oms_order add constraint FK_Reference_57 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table oms_order add constraint FK_Reference_61 foreign key (coupon_id) - references sms_coupon (id) on delete restrict on update restrict; - -alter table oms_order_item add constraint FK_Reference_58 foreign key (order_id) - references oms_order (id) on delete restrict on update restrict; - -alter table oms_order_item add constraint FK_Reference_59 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table oms_order_operate_history add constraint FK_Reference_62 foreign key (order_id) - references oms_order (id) on delete restrict on update restrict; - -alter table oms_order_return_apply add constraint FK_Reference_63 foreign key (order_id) - references oms_order (id) on delete restrict on update restrict; - -alter table oms_order_return_apply add constraint FK_Reference_64 foreign key (company_address_id) - references oms_company_address (id) on delete restrict on update restrict; - -alter table oms_order_return_apply add constraint FK_Reference_75 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table pms_album_pic add constraint FK_Reference_25 foreign key (album_id) - references pms_album (id) on delete restrict on update restrict; - -alter table pms_comment add constraint FK_Reference_23 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table pms_comment_replay add constraint FK_Reference_24 foreign key (comment_id) - references pms_comment (id) on delete restrict on update restrict; - -alter table pms_member_price add constraint FK_Reference_60 foreign key (member_level_id) - references ums_member_level (id) on delete restrict on update restrict; - -alter table pms_member_price add constraint FK_Reference_9 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table pms_product add constraint FK_Reference_1 foreign key (brand_id) - references pms_brand (id) on delete restrict on update restrict; - -alter table pms_product add constraint FK_Reference_13 foreign key (product_attribute_category_id) - references pms_product_attribute_category (id) on delete restrict on update restrict; - -alter table pms_product add constraint FK_Reference_5 foreign key (product_category_id) - references pms_product_category (id) on delete restrict on update restrict; - -alter table pms_product add constraint FK_Reference_6 foreign key (feight_template_id) - references pms_feight_template (id) on delete restrict on update restrict; - -alter table pms_product_attribute add constraint FK_Reference_12 foreign key (product_attribute_category_id) - references pms_product_attribute_category (id) on delete restrict on update restrict; - -alter table pms_product_attribute_value add constraint FK_Reference_14 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table pms_product_attribute_value add constraint FK_Reference_15 foreign key (product_attribute_id) - references pms_product_attribute (id) on delete restrict on update restrict; - -alter table pms_product_category add constraint FK_Reference_20 foreign key (parent_id) - references pms_product_category (id) on delete restrict on update restrict; - -alter table pms_product_category_attribute_relation add constraint FK_Reference_21 foreign key (product_category_id) - references pms_product_category (id) on delete restrict on update restrict; - -alter table pms_product_category_attribute_relation add constraint FK_Reference_22 foreign key (product_attribute_id) - references pms_product_attribute (id) on delete restrict on update restrict; - -alter table pms_product_full_reduction add constraint FK_Reference_11 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table pms_product_ladder add constraint FK_Reference_10 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table pms_product_operate_log add constraint FK_Reference_4 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table pms_product_vertify_record add constraint FK_Reference_3 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table pms_sku_stock add constraint FK_Reference_2 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table sms_coupon_history add constraint FK_Reference_37 foreign key (coupon_id) - references sms_coupon (id) on delete restrict on update restrict; - -alter table sms_coupon_history add constraint FK_Reference_38 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table sms_coupon_history add constraint FK_Reference_76 foreign key (order_id) - references oms_order (id) on delete restrict on update restrict; - -alter table sms_coupon_product_category_relation add constraint FK_Reference_35 foreign key (coupon_id) - references sms_coupon (id) on delete restrict on update restrict; - -alter table sms_coupon_product_category_relation add constraint FK_Reference_36 foreign key (product_category_id) - references pms_product_category (id) on delete restrict on update restrict; - -alter table sms_coupon_product_relation add constraint FK_Reference_33 foreign key (coupon_id) - references sms_coupon (id) on delete restrict on update restrict; - -alter table sms_coupon_product_relation add constraint FK_Reference_34 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table sms_flash_promotion_log add constraint FK_Reference_44 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table sms_flash_promotion_log add constraint FK_Reference_45 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table sms_flash_promotion_product_relation add constraint FK_Reference_77 foreign key (flash_promotion_id) - references sms_flash_promotion (id) on delete restrict on update restrict; - -alter table sms_flash_promotion_product_relation add constraint FK_Reference_78 foreign key (flash_promotion_session_id) - references sms_flash_promotion_session (id) on delete restrict on update restrict; - -alter table sms_flash_promotion_product_relation add constraint FK_Reference_79 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table sms_home_brand add constraint FK_Reference_39 foreign key (brand_id) - references pms_brand (id) on delete restrict on update restrict; - -alter table sms_home_new_product add constraint FK_Reference_40 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table sms_home_recommend_product add constraint FK_Reference_41 foreign key (product_id) - references pms_product (id) on delete restrict on update restrict; - -alter table sms_home_recommend_subject add constraint FK_Reference_42 foreign key (subject_id) - references cms_subject (id) on delete restrict on update restrict; - -alter table ums_admin_login_log add constraint FK_Reference_46 foreign key (admin_id) - references ums_admin (id) on delete restrict on update restrict; - -alter table ums_admin_permission_relation add constraint FK_Reference_73 foreign key (admin_id) - references ums_admin (id) on delete restrict on update restrict; - -alter table ums_admin_permission_relation add constraint FK_Reference_74 foreign key (permission_id) - references ums_permission (id) on delete restrict on update restrict; - -alter table ums_admin_role_relation add constraint FK_Reference_69 foreign key (admin_id) - references ums_admin (id) on delete restrict on update restrict; - -alter table ums_admin_role_relation add constraint FK_Reference_70 foreign key (role_id) - references ums_role (id) on delete restrict on update restrict; - -alter table ums_growth_change_history add constraint FK_Reference_56 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table ums_integration_change_history add constraint FK_Reference_55 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table ums_member add constraint FK_Reference_47 foreign key (member_level_id) - references ums_member_level (id) on delete restrict on update restrict; - -alter table ums_member_login_log add constraint FK_Reference_52 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table ums_member_member_tag_relation add constraint FK_Reference_53 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table ums_member_member_tag_relation add constraint FK_Reference_54 foreign key (tag_id) - references ums_member_tag (id) on delete restrict on update restrict; - -alter table ums_member_product_category_relation add constraint FK_Reference_48 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table ums_member_product_category_relation add constraint FK_Reference_49 foreign key (product_category_id) - references pms_product_category (id) on delete restrict on update restrict; - -alter table ums_member_receive_address add constraint FK_Reference_51 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table ums_member_statistics_info add constraint FK_Reference_50 foreign key (member_id) - references ums_member (id) on delete restrict on update restrict; - -alter table ums_menu add constraint FK_Reference_80 foreign key (parent_id) - references ums_menu (id) on delete restrict on update restrict; - -alter table ums_permission add constraint FK_Reference_68 foreign key (pid) - references ums_permission (id) on delete restrict on update restrict; - -alter table ums_resource add constraint FK_Reference_85 foreign key (category_id) - references ums_resource_category (id) on delete restrict on update restrict; - -alter table ums_role_menu_relation add constraint FK_Reference_81 foreign key (role_id) - references ums_role (id) on delete restrict on update restrict; - -alter table ums_role_menu_relation add constraint FK_Reference_82 foreign key (menu_id) - references ums_menu (id) on delete restrict on update restrict; - -alter table ums_role_permission_relation add constraint FK_Reference_71 foreign key (role_id) - references ums_role (id) on delete restrict on update restrict; - -alter table ums_role_permission_relation add constraint FK_Reference_72 foreign key (permission_id) - references ums_permission (id) on delete restrict on update restrict; - -alter table ums_role_resource_relation add constraint FK_Reference_83 foreign key (role_id) - references ums_role (id) on delete restrict on update restrict; - -alter table ums_role_resource_relation add constraint FK_Reference_84 foreign key (resource_id) - references ums_resource (id) on delete restrict on update restrict; - diff --git "a/document/navicat/mall\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" "b/document/navicat/mall\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" new file mode 100644 index 00000000..933f3cde --- /dev/null +++ "b/document/navicat/mall\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" @@ -0,0 +1,30513 @@ +{ + "paper": { + "name": "A4", + "leftMargin": 0.5, + "rightMargin": 0.5, + "topMargin": 0.5, + "bottomMargin": 0.5, + "isPortriat": true + }, + "modelVersion": 2.01, + "defaultSchema": "Default", + "server": { + "objectType": "Server_MYSQL", + "name": "Default", + "serverVersion": 50719, + "edition": "Default", + "lowerCaseTableNames": 0, + "schemas": [ + { + "objectType": "Schema_MYSQL", + "name": "Default", + "tables": [], + "views": [] + }, + { + "objectType": "Schema_MYSQL", + "name": "mall-ref", + "tables": [ + { + "objectType": "Table_MYSQL", + "name": "cms_help", + "comment": "帮助表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_help", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_help` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `category_id` bigint(20) DEFAULT NULL,\n `icon` varchar(500) DEFAULT NULL,\n `title` varchar(100) DEFAULT NULL,\n `show_status` int(1) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `read_count` int(1) DEFAULT NULL,\n `content` text,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_32` (`category_id`),\n CONSTRAINT `FK_Reference_32` FOREIGN KEY (`category_id`) REFERENCES `cms_help_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='帮助表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "title", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "title" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "read_count", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "read_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_32", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_32", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "category_id", + "keyLength": 0, + "order": "", + "oldName": "category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_32", + "fields": [ + "category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_help_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_32" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_help_category", + "comment": "帮助分类表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_help_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_help_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `icon` varchar(500) DEFAULT NULL COMMENT '分类图标',\n `help_count` int(11) DEFAULT NULL COMMENT '专题数量',\n `show_status` int(2) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='帮助分类表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "help_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "专题数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "help_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 2, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_member_report", + "comment": "用户举报表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 0, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_member_report", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_member_report` (\n `id` bigint(20) DEFAULT NULL,\n `report_type` int(1) DEFAULT NULL COMMENT '举报类型:0->商品评价;1->话题内容;2->用户评论',\n `report_member_name` varchar(100) DEFAULT NULL COMMENT '举报人',\n `create_time` datetime DEFAULT NULL,\n `report_object` varchar(100) DEFAULT NULL,\n `report_status` int(1) DEFAULT NULL COMMENT '举报状态:0->未处理;1->已处理',\n `handle_status` int(1) DEFAULT NULL COMMENT '处理结果:0->无效;1->有效;2->恶意',\n `note` varchar(200) DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户举报表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "report_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "举报类型:0->商品评价;1->话题内容;2->用户评论", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "report_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "report_member_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "举报人", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "report_member_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "report_object", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "report_object" + }, + { + "objectType": "TableField_MYSQL", + "name": "report_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "举报状态:0->未处理;1->已处理", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "report_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "handle_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "处理结果:0->无效;1->有效;2->恶意", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "handle_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + } + ], + "indexes": [], + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_prefrence_area", + "comment": "优选专区", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_prefrence_area", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_prefrence_area` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(255) DEFAULT NULL,\n `sub_title` varchar(255) DEFAULT NULL,\n `pic` varbinary(500) DEFAULT NULL COMMENT '展示图片',\n `sort` int(11) DEFAULT NULL,\n `show_status` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优选专区'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "sub_title", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sub_title" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varbinary", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "展示图片", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_prefrence_area_product_relation", + "comment": "优选专区和产品关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_prefrence_area_product_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_prefrence_area_product_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `prefrence_area_id` bigint(20) DEFAULT NULL,\n `product_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_18` (`prefrence_area_id`),\n KEY `FK_Reference_19` (`product_id`),\n CONSTRAINT `FK_Reference_18` FOREIGN KEY (`prefrence_area_id`) REFERENCES `cms_prefrence_area` (`id`),\n CONSTRAINT `FK_Reference_19` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优选专区和产品关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "prefrence_area_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "prefrence_area_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_18", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_18", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "prefrence_area_id", + "keyLength": 0, + "order": "", + "oldName": "prefrence_area_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_19", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_19", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_18", + "fields": [ + "prefrence_area_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_prefrence_area", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_18" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_19", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_19" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_subject", + "comment": "专题表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_subject", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_subject` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `category_id` bigint(20) DEFAULT NULL,\n `title` varchar(100) DEFAULT NULL,\n `pic` varchar(500) DEFAULT NULL COMMENT '专题主图',\n `product_count` int(11) DEFAULT NULL COMMENT '关联产品数量',\n `recommend_status` int(1) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `collect_count` int(11) DEFAULT NULL,\n `read_count` int(11) DEFAULT NULL,\n `comment_count` int(11) DEFAULT NULL,\n `album_pics` varchar(1000) DEFAULT NULL COMMENT '画册图片用逗号分割',\n `description` varchar(1000) DEFAULT NULL,\n `show_status` int(1) DEFAULT NULL COMMENT '显示状态:0->不显示;1->显示',\n `content` text,\n `forward_count` int(11) DEFAULT NULL COMMENT '转发数',\n `category_name` varchar(200) DEFAULT NULL COMMENT '专题分类名称',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_28` (`category_id`),\n CONSTRAINT `FK_Reference_28` FOREIGN KEY (`category_id`) REFERENCES `cms_subject_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='专题表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "title", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "title" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "专题主图", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "关联产品数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "read_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "read_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "album_pics", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "画册图片用逗号分割", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "album_pics" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "显示状态:0->不显示;1->显示", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + }, + { + "objectType": "TableField_MYSQL", + "name": "forward_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "转发数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "forward_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "category_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "专题分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "category_name" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_28", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_28", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "category_id", + "keyLength": 0, + "order": "", + "oldName": "category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_28", + "fields": [ + "category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_subject_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_28" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_subject_category", + "comment": "专题分类表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_subject_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_subject_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `icon` varchar(500) DEFAULT NULL COMMENT '分类图标',\n `subject_count` int(11) DEFAULT NULL COMMENT '专题数量',\n `show_status` int(2) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='专题分类表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "subject_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "专题数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subject_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 2, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_subject_comment", + "comment": "专题评论表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_subject_comment", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_subject_comment` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `subject_id` bigint(20) DEFAULT NULL,\n `member_nick_name` varchar(255) DEFAULT NULL,\n `member_icon` varchar(255) DEFAULT NULL,\n `content` varchar(1000) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `show_status` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_29` (`subject_id`),\n CONSTRAINT `FK_Reference_29` FOREIGN KEY (`subject_id`) REFERENCES `cms_subject` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='专题评论表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "subject_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subject_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nick_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_icon", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_29", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_29", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "subject_id", + "keyLength": 0, + "order": "", + "oldName": "subject_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_29", + "fields": [ + "subject_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_subject", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_29" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_subject_product_relation", + "comment": "专题商品关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_subject_product_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_subject_product_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `subject_id` bigint(20) DEFAULT NULL,\n `product_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_26` (`subject_id`),\n KEY `FK_Reference_27` (`product_id`),\n CONSTRAINT `FK_Reference_26` FOREIGN KEY (`subject_id`) REFERENCES `cms_subject` (`id`),\n CONSTRAINT `FK_Reference_27` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='专题商品关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "subject_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subject_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_26", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_26", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "subject_id", + "keyLength": 0, + "order": "", + "oldName": "subject_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_27", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_27", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_26", + "fields": [ + "subject_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_subject", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_26" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_27", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_27" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_topic", + "comment": "话题表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_topic", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_topic` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `category_id` bigint(20) DEFAULT NULL,\n `name` varchar(255) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `start_time` datetime DEFAULT NULL,\n `end_time` datetime DEFAULT NULL,\n `attend_count` int(11) DEFAULT NULL COMMENT '参与人数',\n `attention_count` int(11) DEFAULT NULL COMMENT '关注人数',\n `read_count` int(11) DEFAULT NULL,\n `award_name` varchar(100) DEFAULT NULL COMMENT '奖品名称',\n `attend_type` varchar(100) DEFAULT NULL COMMENT '参与方式',\n `content` text COMMENT '话题内容',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_31` (`category_id`),\n CONSTRAINT `FK_Reference_31` FOREIGN KEY (`category_id`) REFERENCES `cms_topic_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='话题表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "attend_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "参与人数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "attend_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "attention_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "关注人数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "attention_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "read_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "read_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "award_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "奖品名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "award_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "attend_type", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "参与方式", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "attend_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "话题内容", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_31", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_31", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "category_id", + "keyLength": 0, + "order": "", + "oldName": "category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_31", + "fields": [ + "category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_topic_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_31" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_topic_category", + "comment": "话题分类表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_topic_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_topic_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `icon` varchar(500) DEFAULT NULL COMMENT '分类图标',\n `subject_count` int(11) DEFAULT NULL COMMENT '专题数量',\n `show_status` int(2) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='话题分类表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "subject_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "专题数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subject_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 2, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "cms_topic_comment", + "comment": "专题评论表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "cms_topic_comment", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `cms_topic_comment` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_nick_name` varchar(255) DEFAULT NULL,\n `topic_id` bigint(20) DEFAULT NULL,\n `member_icon` varchar(255) DEFAULT NULL,\n `content` varchar(1000) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `show_status` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_30` (`topic_id`),\n CONSTRAINT `FK_Reference_30` FOREIGN KEY (`topic_id`) REFERENCES `cms_topic` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='专题评论表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nick_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "topic_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "topic_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_icon", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_30", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_30", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "topic_id", + "keyLength": 0, + "order": "", + "oldName": "topic_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_30", + "fields": [ + "topic_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_topic", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_30" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_cart_item", + "comment": "购物车表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_cart_item", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 49152, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_cart_item` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `product_sku_id` bigint(20) DEFAULT NULL,\n `member_id` bigint(20) DEFAULT NULL,\n `quantity` int(11) DEFAULT NULL COMMENT '购买数量',\n `price` decimal(10,2) DEFAULT NULL COMMENT '添加到购物车的价格',\n `product_pic` varchar(1000) DEFAULT NULL COMMENT '商品主图',\n `product_name` varchar(500) DEFAULT NULL COMMENT '商品名称',\n `product_brand` varchar(200) DEFAULT NULL,\n `product_sn` varchar(200) DEFAULT NULL,\n `product_sub_title` varchar(500) DEFAULT NULL COMMENT '商品副标题(卖点)',\n `product_sku_code` varchar(200) DEFAULT NULL COMMENT '商品sku条码',\n `member_nickname` varchar(500) DEFAULT NULL COMMENT '会员昵称',\n `create_date` datetime DEFAULT NULL COMMENT '创建时间',\n `modify_date` datetime DEFAULT NULL COMMENT '修改时间',\n `delete_status` int(1) DEFAULT '0' COMMENT '是否删除',\n `product_category_id` bigint(20) DEFAULT NULL COMMENT '商品的分类',\n `product_attr` varchar(500) DEFAULT NULL COMMENT '商品销售属性:[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"4G\"}]',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_65` (`product_id`),\n KEY `FK_Reference_66` (`product_sku_id`),\n KEY `FK_Reference_67` (`member_id`),\n CONSTRAINT `FK_Reference_65` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`),\n CONSTRAINT `FK_Reference_66` FOREIGN KEY (`product_sku_id`) REFERENCES `pms_sku_stock` (`id`),\n CONSTRAINT `FK_Reference_67` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='购物车表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sku_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sku_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "quantity", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "购买数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "quantity" + }, + { + "objectType": "TableField_MYSQL", + "name": "price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "添加到购物车的价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_pic", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品主图", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_brand", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_brand" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sn", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sub_title", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品副标题(卖点)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sub_title" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sku_code", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品sku条码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sku_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nickname", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "会员昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nickname" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_date", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_date" + }, + { + "objectType": "TableField_MYSQL", + "name": "modify_date", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "修改时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "modify_date" + }, + { + "objectType": "TableField_MYSQL", + "name": "delete_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否删除", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delete_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品的分类", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attr", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品销售属性:[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"4G\"}]", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attr" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_65", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_65", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_66", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_66", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_sku_id", + "keyLength": 0, + "order": "", + "oldName": "product_sku_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_67", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_67", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_65", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_65" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_66", + "fields": [ + "product_sku_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_sku_stock", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_66" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_67", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_67" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_company_address", + "comment": "公司收发货地址表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_company_address", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_company_address` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `address_name` varchar(200) DEFAULT NULL COMMENT '地址名称',\n `send_status` int(1) DEFAULT NULL COMMENT '默认发货地址:0->否;1->是',\n `receive_status` int(1) DEFAULT NULL COMMENT '是否默认收货地址:0->否;1->是',\n `name` varchar(64) DEFAULT NULL COMMENT '收发货人姓名',\n `phone` varchar(64) DEFAULT NULL COMMENT '收货人电话',\n `province` varchar(64) DEFAULT NULL COMMENT '省/直辖市',\n `city` varchar(64) DEFAULT NULL COMMENT '市',\n `region` varchar(64) DEFAULT NULL COMMENT '区',\n `detail_address` varchar(200) DEFAULT NULL COMMENT '详细地址',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公司收发货地址表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "address_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "地址名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "address_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "send_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "默认发货地址:0->否;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "send_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否默认收货地址:0->否;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收发货人姓名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "phone", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人电话", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "province", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "省/直辖市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "province" + }, + { + "objectType": "TableField_MYSQL", + "name": "city", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "city" + }, + { + "objectType": "TableField_MYSQL", + "name": "region", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "区", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "region" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_address", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "详细地址", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_address" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order", + "comment": "订单表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单id',\n `member_id` bigint(20) NOT NULL,\n `coupon_id` bigint(20) DEFAULT NULL,\n `order_sn` varchar(64) DEFAULT NULL COMMENT '订单编号',\n `create_time` datetime DEFAULT NULL COMMENT '提交时间',\n `member_username` varchar(64) DEFAULT NULL COMMENT '用户帐号',\n `total_amount` decimal(10,2) DEFAULT NULL COMMENT '订单总金额',\n `pay_amount` decimal(10,2) DEFAULT NULL COMMENT '应付金额(实际支付金额)',\n `freight_amount` decimal(10,2) DEFAULT NULL COMMENT '运费金额',\n `promotion_amount` decimal(10,2) DEFAULT NULL COMMENT '促销优化金额(促销价、满减、阶梯价)',\n `integration_amount` decimal(10,2) DEFAULT NULL COMMENT '积分抵扣金额',\n `coupon_amount` decimal(10,2) DEFAULT NULL COMMENT '优惠券抵扣金额',\n `discount_amount` decimal(10,2) DEFAULT NULL COMMENT '管理员后台调整订单使用的折扣金额',\n `pay_type` int(1) DEFAULT NULL COMMENT '支付方式:0->未支付;1->支付宝;2->微信',\n `source_type` int(1) DEFAULT NULL COMMENT '订单来源:0->PC订单;1->app订单',\n `status` int(1) DEFAULT NULL COMMENT '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单',\n `order_type` int(1) DEFAULT NULL COMMENT '订单类型:0->正常订单;1->秒杀订单',\n `delivery_company` varchar(64) DEFAULT NULL COMMENT '物流公司(配送方式)',\n `delivery_sn` varchar(64) DEFAULT NULL COMMENT '物流单号',\n `auto_confirm_day` int(11) DEFAULT NULL COMMENT '自动确认时间(天)',\n `integration` int(11) DEFAULT NULL COMMENT '可以获得的积分',\n `growth` int(11) DEFAULT NULL COMMENT '可以活动的成长值',\n `promotion_info` varchar(100) DEFAULT NULL COMMENT '活动信息',\n `bill_type` int(1) DEFAULT NULL COMMENT '发票类型:0->不开发票;1->电子发票;2->纸质发票',\n `bill_header` varchar(200) DEFAULT NULL COMMENT '发票抬头',\n `bill_content` varchar(200) DEFAULT NULL COMMENT '发票内容',\n `bill_receiver_phone` varchar(32) DEFAULT NULL COMMENT '收票人电话',\n `bill_receiver_email` varchar(64) DEFAULT NULL COMMENT '收票人邮箱',\n `receiver_name` varchar(100) NOT NULL COMMENT '收货人姓名',\n `receiver_phone` varchar(32) NOT NULL COMMENT '收货人电话',\n `receiver_post_code` varchar(32) DEFAULT NULL COMMENT '收货人邮编',\n `receiver_province` varchar(32) DEFAULT NULL COMMENT '省份/直辖市',\n `receiver_city` varchar(32) DEFAULT NULL COMMENT '城市',\n `receiver_region` varchar(32) DEFAULT NULL COMMENT '区',\n `receiver_detail_address` varchar(200) DEFAULT NULL COMMENT '详细地址',\n `note` varchar(500) DEFAULT NULL COMMENT '订单备注',\n `confirm_status` int(1) DEFAULT NULL COMMENT '确认收货状态:0->未确认;1->已确认',\n `delete_status` int(1) NOT NULL DEFAULT '0' COMMENT '删除状态:0->未删除;1->已删除',\n `use_integration` int(11) DEFAULT NULL COMMENT '下单时使用的积分',\n `payment_time` datetime DEFAULT NULL COMMENT '支付时间',\n `delivery_time` datetime DEFAULT NULL COMMENT '发货时间',\n `receive_time` datetime DEFAULT NULL COMMENT '确认收货时间',\n `comment_time` datetime DEFAULT NULL COMMENT '评价时间',\n `modify_time` datetime DEFAULT NULL COMMENT '修改时间',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_57` (`member_id`),\n KEY `FK_Reference_61` (`coupon_id`),\n CONSTRAINT `FK_Reference_57` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_61` FOREIGN KEY (`coupon_id`) REFERENCES `sms_coupon` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "提交时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户帐号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_username" + }, + { + "objectType": "TableField_MYSQL", + "name": "total_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单总金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "total_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "pay_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "应付金额(实际支付金额)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pay_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "freight_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "运费金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "freight_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销优化金额(促销价、满减、阶梯价)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "integration_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分抵扣金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "integration_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠券抵扣金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "discount_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "管理员后台调整订单使用的折扣金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "discount_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "pay_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "支付方式:0->未支付;1->支付宝;2->微信", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pay_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单来源:0->PC订单;1->app订单", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单类型:0->正常订单;1->秒杀订单", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "delivery_company", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "物流公司(配送方式)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delivery_company" + }, + { + "objectType": "TableField_MYSQL", + "name": "delivery_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "物流单号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delivery_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "auto_confirm_day", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "自动确认时间(天)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "auto_confirm_day" + }, + { + "objectType": "TableField_MYSQL", + "name": "integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可以获得的积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "integration" + }, + { + "objectType": "TableField_MYSQL", + "name": "growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可以活动的成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_info", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "活动信息", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_info" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发票类型:0->不开发票;1->电子发票;2->纸质发票", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_header", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发票抬头", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_header" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_content", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发票内容", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_content" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_receiver_phone", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收票人电话", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_receiver_phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_receiver_email", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收票人邮箱", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_receiver_email" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人姓名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_phone", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人电话", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_post_code", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人邮编", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_post_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_province", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "省份/直辖市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_province" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_city", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "城市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_city" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_region", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "区", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_region" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_detail_address", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "详细地址", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_detail_address" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "confirm_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "确认收货状态:0->未确认;1->已确认", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "confirm_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "delete_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "删除状态:0->未删除;1->已删除", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delete_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "下单时使用的积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_integration" + }, + { + "objectType": "TableField_MYSQL", + "name": "payment_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "支付时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "payment_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "delivery_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发货时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delivery_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "确认收货时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评价时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "modify_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "修改时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "modify_time" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_57", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_57", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_61", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_61", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "coupon_id", + "keyLength": 0, + "order": "", + "oldName": "coupon_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_57", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "FK_Reference_57" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_61", + "fields": [ + "coupon_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_coupon", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_61" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_item", + "comment": "订单中所包含的商品", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_item", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_item` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `order_id` bigint(20) DEFAULT NULL COMMENT '订单id',\n `order_sn` varchar(64) DEFAULT NULL COMMENT '订单编号',\n `product_id` bigint(20) DEFAULT NULL,\n `product_pic` varchar(500) DEFAULT NULL,\n `product_name` varchar(200) DEFAULT NULL,\n `product_brand` varchar(200) DEFAULT NULL,\n `product_sn` varchar(64) DEFAULT NULL,\n `product_price` decimal(10,2) DEFAULT NULL COMMENT '销售价格',\n `product_quantity` int(11) DEFAULT NULL COMMENT '购买数量',\n `product_sku_id` bigint(20) DEFAULT NULL COMMENT '商品sku编号',\n `product_sku_code` varchar(50) DEFAULT NULL COMMENT '商品sku条码',\n `product_category_id` bigint(20) DEFAULT NULL COMMENT '商品分类id',\n `promotion_name` varchar(200) DEFAULT NULL COMMENT '商品促销名称',\n `promotion_amount` decimal(10,2) DEFAULT NULL COMMENT '商品促销分解金额',\n `coupon_amount` decimal(10,2) DEFAULT NULL COMMENT '优惠券优惠分解金额',\n `integration_amount` decimal(10,2) DEFAULT NULL COMMENT '积分优惠分解金额',\n `real_amount` decimal(10,2) DEFAULT NULL COMMENT '该商品经过优惠后的分解金额',\n `gift_integration` int(11) NOT NULL DEFAULT '0' COMMENT '商品赠送积分',\n `gift_growth` int(11) NOT NULL DEFAULT '0' COMMENT '商品赠送成长值',\n `product_attr` varchar(500) DEFAULT NULL COMMENT '商品销售属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_58` (`order_id`),\n KEY `FK_Reference_59` (`product_id`),\n CONSTRAINT `FK_Reference_58` FOREIGN KEY (`order_id`) REFERENCES `oms_order` (`id`),\n CONSTRAINT `FK_Reference_59` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单中所包含的商品'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_pic", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_brand", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_brand" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "销售价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_quantity", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "购买数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_quantity" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sku_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品sku编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sku_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sku_code", + "type": "varchar", + "length": 50, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品sku条码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sku_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品分类id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品促销名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品促销分解金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠券优惠分解金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "integration_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分优惠分解金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "integration_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "real_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "该商品经过优惠后的分解金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "real_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品赠送积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_integration" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品赠送成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attr", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品销售属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attr" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_58", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_58", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "order_id", + "keyLength": 0, + "order": "", + "oldName": "order_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_59", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_59", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_58", + "fields": [ + "order_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_order", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_58" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_59", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_59" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_operate_history", + "comment": "订单操作历史记录", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_operate_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_operate_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `order_id` bigint(20) DEFAULT NULL COMMENT '订单id',\n `operate_man` varchar(100) DEFAULT NULL COMMENT '操作人:用户;系统;后台管理员',\n `create_time` datetime DEFAULT NULL COMMENT '操作时间',\n `order_status` int(1) DEFAULT NULL COMMENT '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单',\n `note` varchar(500) DEFAULT NULL COMMENT '备注',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_62` (`order_id`),\n CONSTRAINT `FK_Reference_62` FOREIGN KEY (`order_id`) REFERENCES `oms_order` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单操作历史记录'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人:用户;系统;后台管理员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_62", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_62", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "order_id", + "keyLength": 0, + "order": "", + "oldName": "order_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_62", + "fields": [ + "order_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_order", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_62" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_return_apply", + "comment": "订单退货申请", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_return_apply", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 49152, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_return_apply` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `order_id` bigint(20) DEFAULT NULL COMMENT '订单id',\n `company_address_id` bigint(20) DEFAULT NULL COMMENT '收货地址表id',\n `product_id` bigint(20) DEFAULT NULL COMMENT '退货商品id',\n `order_sn` varchar(64) DEFAULT NULL COMMENT '订单编号',\n `create_time` datetime DEFAULT NULL COMMENT '申请时间',\n `member_username` varchar(64) DEFAULT NULL COMMENT '会员用户名',\n `return_amount` decimal(10,2) DEFAULT NULL COMMENT '退款金额',\n `return_name` varchar(100) DEFAULT NULL COMMENT '退货人姓名',\n `return_phone` varchar(100) DEFAULT NULL COMMENT '退货人电话',\n `status` int(1) DEFAULT NULL COMMENT '申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝',\n `handle_time` datetime DEFAULT NULL COMMENT '处理时间',\n `product_pic` varchar(500) DEFAULT NULL COMMENT '商品图片',\n `product_name` varchar(200) DEFAULT NULL COMMENT '商品名称',\n `product_brand` varchar(200) DEFAULT NULL COMMENT '商品品牌',\n `product_attr` varchar(500) DEFAULT NULL COMMENT '商品销售属性:颜色:红色;尺码:xl;',\n `product_count` int(11) DEFAULT NULL COMMENT '退货数量',\n `product_price` decimal(10,2) DEFAULT NULL COMMENT '商品单价',\n `product_real_price` decimal(10,2) DEFAULT NULL COMMENT '商品实际支付单价',\n `reason` varchar(200) DEFAULT NULL COMMENT '原因',\n `description` varchar(500) DEFAULT NULL COMMENT '描述',\n `proof_pics` varchar(1000) DEFAULT NULL COMMENT '凭证图片,以逗号隔开',\n `handle_note` varchar(500) DEFAULT NULL COMMENT '处理备注',\n `handle_man` varchar(100) DEFAULT NULL COMMENT '处理人员',\n `receive_man` varchar(100) DEFAULT NULL COMMENT '收货人',\n `receive_time` datetime DEFAULT NULL COMMENT '收货时间',\n `receive_note` varchar(500) DEFAULT NULL COMMENT '收货备注',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_63` (`order_id`),\n KEY `FK_Reference_64` (`company_address_id`),\n KEY `FK_Reference_75` (`product_id`),\n CONSTRAINT `FK_Reference_63` FOREIGN KEY (`order_id`) REFERENCES `oms_order` (`id`),\n CONSTRAINT `FK_Reference_64` FOREIGN KEY (`company_address_id`) REFERENCES `oms_company_address` (`id`),\n CONSTRAINT `FK_Reference_75` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单退货申请'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "company_address_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货地址表id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "company_address_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货商品id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "申请时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "会员用户名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_username" + }, + { + "objectType": "TableField_MYSQL", + "name": "return_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退款金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "return_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "return_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货人姓名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "return_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "return_phone", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货人电话", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "return_phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "handle_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "处理时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "handle_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_pic", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品图片", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_brand", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品品牌", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_brand" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attr", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品销售属性:颜色:红色;尺码:xl;", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attr" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品单价", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_real_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品实际支付单价", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_real_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "reason", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "原因", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "reason" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + }, + { + "objectType": "TableField_MYSQL", + "name": "proof_pics", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "凭证图片,以逗号隔开", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "proof_pics" + }, + { + "objectType": "TableField_MYSQL", + "name": "handle_note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "处理备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "handle_note" + }, + { + "objectType": "TableField_MYSQL", + "name": "handle_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "处理人员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "handle_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_note" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_63", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_63", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "order_id", + "keyLength": 0, + "order": "", + "oldName": "order_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_64", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_64", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "company_address_id", + "keyLength": 0, + "order": "", + "oldName": "company_address_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_75", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_75", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_63", + "fields": [ + "order_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_order", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_63" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_64", + "fields": [ + "company_address_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_company_address", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_64" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_75", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_75" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_return_reason", + "comment": "退货原因表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_return_reason", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_return_reason` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL COMMENT '退货类型',\n `sort` int(11) DEFAULT NULL,\n `status` int(1) DEFAULT NULL COMMENT '状态:0->不启用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '添加时间',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='退货原因表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货类型", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "状态:0->不启用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "添加时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_setting", + "comment": "订单设置表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_setting", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_setting` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `flash_order_overtime` int(11) DEFAULT NULL COMMENT '秒杀订单超时关闭时间(分)',\n `normal_order_overtime` int(11) DEFAULT NULL COMMENT '正常订单超时时间(分)',\n `confirm_overtime` int(11) DEFAULT NULL COMMENT '发货后自动确认收货时间(天)',\n `finish_overtime` int(11) DEFAULT NULL COMMENT '自动完成交易时间,不能申请售后(天)',\n `comment_overtime` int(11) DEFAULT NULL COMMENT '订单完成后自动好评时间(天)',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单设置表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_order_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "秒杀订单超时关闭时间(分)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_order_overtime" + }, + { + "objectType": "TableField_MYSQL", + "name": "normal_order_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "正常订单超时时间(分)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "normal_order_overtime" + }, + { + "objectType": "TableField_MYSQL", + "name": "confirm_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发货后自动确认收货时间(天)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "confirm_overtime" + }, + { + "objectType": "TableField_MYSQL", + "name": "finish_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "自动完成交易时间,不能申请售后(天)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "finish_overtime" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单完成后自动好评时间(天)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_overtime" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_album", + "comment": "相册表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_album", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_album` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(64) DEFAULT NULL,\n `cover_pic` varchar(1000) DEFAULT NULL,\n `pic_count` int(11) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n `description` varchar(1000) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='相册表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "cover_pic", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "cover_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_album_pic", + "comment": "画册图片表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_album_pic", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_album_pic` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `album_id` bigint(20) DEFAULT NULL,\n `pic` varchar(1000) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_25` (`album_id`),\n CONSTRAINT `FK_Reference_25` FOREIGN KEY (`album_id`) REFERENCES `pms_album` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='画册图片表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "album_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "album_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_25", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_25", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "album_id", + "keyLength": 0, + "order": "", + "oldName": "album_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_25", + "fields": [ + "album_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_album", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_25" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_brand", + "comment": "品牌表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_brand", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_brand` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(64) DEFAULT NULL,\n `first_letter` varchar(8) DEFAULT NULL COMMENT '首字母',\n `sort` int(11) DEFAULT NULL,\n `factory_status` int(1) DEFAULT NULL COMMENT '是否为品牌制造商:0->不是;1->是',\n `show_status` int(1) DEFAULT NULL,\n `product_count` int(11) DEFAULT NULL COMMENT '产品数量',\n `product_comment_count` int(11) DEFAULT NULL COMMENT '产品评论数量',\n `logo` varchar(255) DEFAULT NULL COMMENT '品牌logo',\n `big_pic` varchar(255) DEFAULT NULL COMMENT '专区大图',\n `brand_story` text COMMENT '品牌故事',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='品牌表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "first_letter", + "type": "varchar", + "length": 8, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "首字母", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "first_letter" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "factory_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否为品牌制造商:0->不是;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "factory_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_comment_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品评论数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_comment_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "logo", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "品牌logo", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "logo" + }, + { + "objectType": "TableField_MYSQL", + "name": "big_pic", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "专区大图", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "big_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_story", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "品牌故事", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_story" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_comment", + "comment": "商品评价表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_comment", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_comment` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `member_nick_name` varchar(255) DEFAULT NULL,\n `product_name` varchar(255) DEFAULT NULL,\n `star` int(3) DEFAULT NULL COMMENT '评价星数:0->5',\n `member_ip` varchar(64) DEFAULT NULL COMMENT '评价的ip',\n `create_time` datetime DEFAULT NULL,\n `show_status` int(1) DEFAULT NULL,\n `product_attribute` varchar(255) DEFAULT NULL COMMENT '购买时的商品属性',\n `collect_couont` int(11) DEFAULT NULL,\n `read_count` int(11) DEFAULT NULL,\n `content` text,\n `pics` varchar(1000) DEFAULT NULL COMMENT '上传图片地址,以逗号隔开',\n `member_icon` varchar(255) DEFAULT NULL COMMENT '评论用户头像',\n `replay_count` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_23` (`product_id`),\n CONSTRAINT `FK_Reference_23` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品评价表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nick_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "star", + "type": "int", + "length": 3, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评价星数:0->5", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "star" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_ip", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评价的ip", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_ip" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "购买时的商品属性", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_couont", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_couont" + }, + { + "objectType": "TableField_MYSQL", + "name": "read_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "read_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + }, + { + "objectType": "TableField_MYSQL", + "name": "pics", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上传图片地址,以逗号隔开", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pics" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_icon", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评论用户头像", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "replay_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "replay_count" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_23", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_23", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_23", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_23" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_comment_replay", + "comment": "产品评价回复表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_comment_replay", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_comment_replay` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `comment_id` bigint(20) DEFAULT NULL,\n `member_nick_name` varchar(255) DEFAULT NULL,\n `member_icon` varchar(255) DEFAULT NULL,\n `content` varchar(1000) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `type` int(1) DEFAULT NULL COMMENT '评论人员类型;0->会员;1->管理员',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_24` (`comment_id`),\n CONSTRAINT `FK_Reference_24` FOREIGN KEY (`comment_id`) REFERENCES `pms_comment` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品评价回复表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nick_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_icon", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评论人员类型;0->会员;1->管理员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_24", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_24", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "comment_id", + "keyLength": 0, + "order": "", + "oldName": "comment_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_24", + "fields": [ + "comment_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_comment", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_24" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_feight_template", + "comment": "运费模版", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_feight_template", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_feight_template` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(64) DEFAULT NULL,\n `charge_type` int(1) DEFAULT NULL COMMENT '计费类型:0->按重量;1->按件数',\n `first_weight` decimal(10,2) DEFAULT NULL COMMENT '首重kg',\n `first_fee` decimal(10,2) DEFAULT NULL COMMENT '首费(元)',\n `continue_weight` decimal(10,2) DEFAULT NULL,\n `continme_fee` decimal(10,2) DEFAULT NULL,\n `dest` varchar(255) DEFAULT NULL COMMENT '目的地(省、市)',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='运费模版'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "charge_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "计费类型:0->按重量;1->按件数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "charge_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "first_weight", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "首重kg", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "first_weight" + }, + { + "objectType": "TableField_MYSQL", + "name": "first_fee", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "首费(元)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "first_fee" + }, + { + "objectType": "TableField_MYSQL", + "name": "continue_weight", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "continue_weight" + }, + { + "objectType": "TableField_MYSQL", + "name": "continme_fee", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "continme_fee" + }, + { + "objectType": "TableField_MYSQL", + "name": "dest", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "目的地(省、市)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "dest" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_member_price", + "comment": "商品会员价格表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_member_price", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_member_price` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `member_level_id` bigint(20) DEFAULT NULL,\n `member_price` decimal(10,2) DEFAULT NULL COMMENT '会员价格',\n `member_level_name` varchar(100) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_60` (`member_level_id`),\n KEY `FK_Reference_9` (`product_id`),\n CONSTRAINT `FK_Reference_60` FOREIGN KEY (`member_level_id`) REFERENCES `ums_member_level` (`id`),\n CONSTRAINT `FK_Reference_9` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品会员价格表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_level_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_level_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "会员价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_level_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_level_name" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_60", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_60", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_level_id", + "keyLength": 0, + "order": "", + "oldName": "member_level_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_9", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_9", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_60", + "fields": [ + "member_level_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member_level", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_60" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_9", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_9" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product", + "comment": "商品信息", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 65536, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `brand_id` bigint(20) DEFAULT NULL,\n `product_category_id` bigint(20) DEFAULT NULL,\n `feight_template_id` bigint(20) DEFAULT NULL,\n `product_attribute_category_id` bigint(20) DEFAULT NULL,\n `name` varchar(64) NOT NULL,\n `pic` varchar(255) DEFAULT NULL,\n `product_sn` varchar(64) NOT NULL COMMENT '货号',\n `delete_status` int(1) DEFAULT NULL COMMENT '删除状态:0->未删除;1->已删除',\n `publish_status` int(1) DEFAULT NULL COMMENT '上架状态:0->下架;1->上架',\n `new_status` int(1) DEFAULT NULL COMMENT '新品状态:0->不是新品;1->新品',\n `recommand_status` int(1) DEFAULT NULL COMMENT '推荐状态;0->不推荐;1->推荐',\n `verify_status` int(1) DEFAULT NULL COMMENT '审核状态:0->未审核;1->审核通过',\n `sort` int(11) DEFAULT NULL COMMENT '排序',\n `sale` int(11) DEFAULT NULL COMMENT '销量',\n `price` decimal(10,2) DEFAULT NULL,\n `promotion_price` decimal(10,2) DEFAULT NULL COMMENT '促销价格',\n `gift_growth` int(11) DEFAULT '0' COMMENT '赠送的成长值',\n `gift_point` int(11) DEFAULT '0' COMMENT '赠送的积分',\n `use_point_limit` int(11) DEFAULT NULL COMMENT '限制使用的积分数',\n `sub_title` varchar(255) DEFAULT NULL COMMENT '副标题',\n `description` text COMMENT '商品描述',\n `original_price` decimal(10,2) DEFAULT NULL COMMENT '市场价',\n `stock` int(11) DEFAULT NULL COMMENT '库存',\n `low_stock` int(11) DEFAULT NULL COMMENT '库存预警值',\n `unit` varchar(16) DEFAULT NULL COMMENT '单位',\n `weight` decimal(10,2) DEFAULT NULL COMMENT '商品重量,默认为克',\n `preview_status` int(1) DEFAULT NULL COMMENT '是否为预告商品:0->不是;1->是',\n `service_ids` varchar(64) DEFAULT NULL COMMENT '以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮',\n `keywords` varchar(255) DEFAULT NULL,\n `note` varchar(255) DEFAULT NULL,\n `album_pics` varchar(255) DEFAULT NULL COMMENT '画册图片,连产品图片限制为5张,以逗号分割',\n `detail_title` varchar(255) DEFAULT NULL,\n `detail_desc` text,\n `detail_html` text COMMENT '产品详情网页内容',\n `detail_mobile_html` text COMMENT '移动端网页详情',\n `promotion_start_time` datetime DEFAULT NULL COMMENT '促销开始时间',\n `promotion_end_time` datetime DEFAULT NULL COMMENT '促销结束时间',\n `promotion_per_limit` int(11) DEFAULT NULL COMMENT '活动限购数量',\n `promotion_type` int(1) DEFAULT NULL COMMENT '促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购',\n `product_category_name` varchar(255) DEFAULT NULL COMMENT '产品分类名称',\n `brand_name` varchar(255) DEFAULT NULL COMMENT '品牌名称',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_1` (`brand_id`),\n KEY `FK_Reference_13` (`product_attribute_category_id`),\n KEY `FK_Reference_5` (`product_category_id`),\n KEY `FK_Reference_6` (`feight_template_id`),\n CONSTRAINT `FK_Reference_1` FOREIGN KEY (`brand_id`) REFERENCES `pms_brand` (`id`),\n CONSTRAINT `FK_Reference_13` FOREIGN KEY (`product_attribute_category_id`) REFERENCES `pms_product_attribute_category` (`id`),\n CONSTRAINT `FK_Reference_5` FOREIGN KEY (`product_category_id`) REFERENCES `pms_product_category` (`id`),\n CONSTRAINT `FK_Reference_6` FOREIGN KEY (`feight_template_id`) REFERENCES `pms_feight_template` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品信息'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "feight_template_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "feight_template_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "货号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "delete_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "删除状态:0->未删除;1->已删除", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delete_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "publish_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上架状态:0->下架;1->上架", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "publish_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "new_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "新品状态:0->不是新品;1->新品", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "new_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommand_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "推荐状态;0->不推荐;1->推荐", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommand_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "verify_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "审核状态:0->未审核;1->审核通过", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "verify_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "sale", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "销量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sale" + }, + { + "objectType": "TableField_MYSQL", + "name": "price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送的成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_point", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送的积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_point_limit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "限制使用的积分数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_point_limit" + }, + { + "objectType": "TableField_MYSQL", + "name": "sub_title", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "副标题", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sub_title" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + }, + { + "objectType": "TableField_MYSQL", + "name": "original_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "市场价", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "original_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "库存", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "low_stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "库存预警值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "low_stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "unit", + "type": "varchar", + "length": 16, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "单位", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "unit" + }, + { + "objectType": "TableField_MYSQL", + "name": "weight", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品重量,默认为克", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "weight" + }, + { + "objectType": "TableField_MYSQL", + "name": "preview_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否为预告商品:0->不是;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "preview_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "service_ids", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "service_ids" + }, + { + "objectType": "TableField_MYSQL", + "name": "keywords", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "keywords" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "album_pics", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "画册图片,连产品图片限制为5张,以逗号分割", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "album_pics" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_title", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_title" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_desc", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_desc" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_html", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品详情网页内容", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_html" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_mobile_html", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "移动端网页详情", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_mobile_html" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_start_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销开始时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_end_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销结束时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_per_limit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "活动限购数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_per_limit" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "品牌名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_name" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_1", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_1", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "brand_id", + "keyLength": 0, + "order": "", + "oldName": "brand_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_13", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_13", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_attribute_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_attribute_category_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_5", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_5", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_category_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_6", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_6", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "feight_template_id", + "keyLength": 0, + "order": "", + "oldName": "feight_template_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_1", + "fields": [ + "brand_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_brand", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_1" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_13", + "fields": [ + "product_attribute_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_attribute_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_13" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_5", + "fields": [ + "product_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_5" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_6", + "fields": [ + "feight_template_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_feight_template", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_6" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_attribute", + "comment": "商品属性参数表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_attribute", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_attribute` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_attribute_category_id` bigint(20) DEFAULT NULL,\n `name` varchar(64) DEFAULT NULL,\n `select_type` int(1) DEFAULT NULL COMMENT '属性选择类型:0->唯一;1->单选;2->多选;对应属性和参数意义不同;',\n `input_type` int(1) DEFAULT NULL COMMENT '属性录入方式:0->手工录入;1->从列表中选取',\n `input_list` varchar(255) DEFAULT NULL COMMENT '可选值列表,以逗号隔开',\n `sort` int(11) DEFAULT NULL COMMENT '排序字段:最高的可以单独上传图片',\n `filter_type` int(1) DEFAULT NULL COMMENT '分类筛选样式:1->普通;1->颜色',\n `search_type` int(1) DEFAULT NULL COMMENT '检索类型;0->不需要进行检索;1->关键字检索;2->范围检索',\n `related_status` int(1) DEFAULT NULL COMMENT '相同属性产品是否关联;0->不关联;1->关联',\n `hand_add_status` int(1) DEFAULT NULL COMMENT '是否支持手动新增;0->不支持;1->支持',\n `type` int(1) DEFAULT NULL COMMENT '属性的类型;0->规格;1->参数',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_12` (`product_attribute_category_id`),\n CONSTRAINT `FK_Reference_12` FOREIGN KEY (`product_attribute_category_id`) REFERENCES `pms_product_attribute_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品属性参数表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "select_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "属性选择类型:0->唯一;1->单选;2->多选;对应属性和参数意义不同;", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "select_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "input_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "属性录入方式:0->手工录入;1->从列表中选取", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "input_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "input_list", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可选值列表,以逗号隔开", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "input_list" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序字段:最高的可以单独上传图片", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "filter_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类筛选样式:1->普通;1->颜色", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "filter_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "search_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "检索类型;0->不需要进行检索;1->关键字检索;2->范围检索", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "search_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "related_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "相同属性产品是否关联;0->不关联;1->关联", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "related_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "hand_add_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否支持手动新增;0->不支持;1->支持", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "hand_add_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "属性的类型;0->规格;1->参数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_12", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_12", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_attribute_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_attribute_category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_12", + "fields": [ + "product_attribute_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_attribute_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_12" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_attribute_category", + "comment": "产品属性分类表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_attribute_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_attribute_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(64) DEFAULT NULL,\n `attribute_count` int(11) DEFAULT NULL COMMENT '属性数量',\n `param_count` int(11) DEFAULT NULL COMMENT '参数数量',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品属性分类表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "attribute_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "属性数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "attribute_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "param_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "参数数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "param_count" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_attribute_value", + "comment": "存储产品参数信息的表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_attribute_value", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_attribute_value` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `product_attribute_id` bigint(20) DEFAULT NULL,\n `value` varchar(64) DEFAULT NULL COMMENT '手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_14` (`product_id`),\n KEY `FK_Reference_15` (`product_attribute_id`),\n CONSTRAINT `FK_Reference_14` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`),\n CONSTRAINT `FK_Reference_15` FOREIGN KEY (`product_attribute_id`) REFERENCES `pms_product_attribute` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='存储产品参数信息的表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "value", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "value" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_14", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_14", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_15", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_15", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_attribute_id", + "keyLength": 0, + "order": "", + "oldName": "product_attribute_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_14", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_14" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_15", + "fields": [ + "product_attribute_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_attribute", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_15" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_category", + "comment": "产品分类", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `parent_id` bigint(20) DEFAULT NULL COMMENT '上机分类的编号:0表示一级分类',\n `name` varchar(64) DEFAULT NULL,\n `level` int(1) DEFAULT NULL COMMENT '分类级别:0->1级;1->2级',\n `product_count` int(11) DEFAULT NULL,\n `product_unit` varchar(64) DEFAULT NULL,\n `nav_status` int(1) DEFAULT NULL COMMENT '是否显示在导航栏:0->不显示;1->显示',\n `show_status` int(1) DEFAULT NULL COMMENT '显示状态:0->不显示;1->显示',\n `sort` int(11) DEFAULT NULL,\n `icon` varchar(255) DEFAULT NULL COMMENT '图标',\n `keywords` varchar(255) DEFAULT NULL,\n `description` text COMMENT '描述',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_20` (`parent_id`),\n CONSTRAINT `FK_Reference_20` FOREIGN KEY (`parent_id`) REFERENCES `pms_product_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品分类'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "parent_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上机分类的编号:0表示一级分类", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "parent_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "level", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类级别:0->1级;1->2级", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "level" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_unit", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_unit" + }, + { + "objectType": "TableField_MYSQL", + "name": "nav_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否显示在导航栏:0->不显示;1->显示", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "nav_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "显示状态:0->不显示;1->显示", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "keywords", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "keywords" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_20", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_20", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "parent_id", + "keyLength": 0, + "order": "", + "oldName": "parent_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_20", + "fields": [ + "parent_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_20" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_category_attribute_relation", + "comment": "产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_category_attribute_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_category_attribute_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_category_id` bigint(20) DEFAULT NULL,\n `product_attribute_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_21` (`product_category_id`),\n KEY `FK_Reference_22` (`product_attribute_id`),\n CONSTRAINT `FK_Reference_21` FOREIGN KEY (`product_category_id`) REFERENCES `pms_product_category` (`id`),\n CONSTRAINT `FK_Reference_22` FOREIGN KEY (`product_attribute_id`) REFERENCES `pms_product_attribute` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_21", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_21", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_category_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_22", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_22", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_attribute_id", + "keyLength": 0, + "order": "", + "oldName": "product_attribute_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_21", + "fields": [ + "product_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_21" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_22", + "fields": [ + "product_attribute_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_attribute", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_22" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_full_reduction", + "comment": "产品满减表(只针对同商品)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_full_reduction", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_full_reduction` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `full_price` decimal(10,2) DEFAULT NULL,\n `reduce_price` decimal(10,2) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_11` (`product_id`),\n CONSTRAINT `FK_Reference_11` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品满减表(只针对同商品)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "full_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "full_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "reduce_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "reduce_price" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_11", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_11", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_11", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_11" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_ladder", + "comment": "产品阶梯价格表(只针对同商品)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_ladder", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_ladder` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `count` int(11) DEFAULT NULL COMMENT '满足的商品数量',\n `discount` decimal(10,2) DEFAULT NULL COMMENT '折扣',\n `price` decimal(10,2) DEFAULT NULL COMMENT '折后价格',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_10` (`product_id`),\n CONSTRAINT `FK_Reference_10` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品阶梯价格表(只针对同商品)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "满足的商品数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "count" + }, + { + "objectType": "TableField_MYSQL", + "name": "discount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "折扣", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "discount" + }, + { + "objectType": "TableField_MYSQL", + "name": "price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "折后价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_10", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_10", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_10", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_10" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_operate_log", + "comment": "", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_operate_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:55", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_operate_log` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `price_old` decimal(10,2) DEFAULT NULL,\n `price_new` decimal(10,2) DEFAULT NULL,\n `sale_price_old` decimal(10,2) DEFAULT NULL,\n `sale_price_new` decimal(10,2) DEFAULT NULL,\n `gift_point_old` int(11) DEFAULT NULL COMMENT '赠送的积分',\n `gift_point_new` int(11) DEFAULT NULL,\n `use_point_limit_old` int(11) DEFAULT NULL,\n `use_point_limit_new` int(11) DEFAULT NULL,\n `operate_man` varchar(64) DEFAULT NULL COMMENT '操作人',\n `create_time` datetime DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_4` (`product_id`),\n CONSTRAINT `FK_Reference_4` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "price_old", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price_old" + }, + { + "objectType": "TableField_MYSQL", + "name": "price_new", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price_new" + }, + { + "objectType": "TableField_MYSQL", + "name": "sale_price_old", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sale_price_old" + }, + { + "objectType": "TableField_MYSQL", + "name": "sale_price_new", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sale_price_new" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_point_old", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送的积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_point_old" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_point_new", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_point_new" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_point_limit_old", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_point_limit_old" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_point_limit_new", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_point_limit_new" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_4", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_4", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_4", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_4" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_vertify_record", + "comment": "商品审核记录", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_vertify_record", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_vertify_record` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `vertify_man` varchar(64) DEFAULT NULL COMMENT '审核人',\n `status` int(1) DEFAULT NULL COMMENT '审核后的状态:0->未通过;2->已通过',\n `detail` varchar(255) DEFAULT NULL COMMENT '反馈详情',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_3` (`product_id`),\n CONSTRAINT `FK_Reference_3` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品审核记录'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "vertify_man", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "审核人", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "vertify_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "审核后的状态:0->未通过;2->已通过", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "反馈详情", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_3", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_3", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_3", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_3" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_sku_stock", + "comment": "sku的库存", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_sku_stock", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_sku_stock` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `sku_code` varchar(64) NOT NULL COMMENT 'sku编码',\n `price` decimal(10,2) DEFAULT NULL,\n `stock` int(11) DEFAULT '0' COMMENT '库存',\n `low_stock` int(11) DEFAULT NULL COMMENT '预警库存',\n `pic` varchar(255) DEFAULT NULL COMMENT '展示图片',\n `sale` int(11) DEFAULT NULL COMMENT '销量',\n `promotion_price` decimal(10,2) DEFAULT NULL COMMENT '单品促销价格',\n `lock_stock` int(11) DEFAULT '0' COMMENT '锁定库存',\n `sp_data` varchar(500) DEFAULT NULL COMMENT '商品销售属性,json格式',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_2` (`product_id`),\n CONSTRAINT `FK_Reference_2` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sku的库存'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "sku_code", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "sku编码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sku_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price" + }, + { + "objectType": "TableField_MYSQL", + "name": "stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "库存", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "low_stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "预警库存", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "low_stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "展示图片", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "sale", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "销量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sale" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "单品促销价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "lock_stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "锁定库存", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "lock_stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "sp_data", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品销售属性,json格式", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sp_data" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_2", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_2", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_2", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_2" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_coupon", + "comment": "优惠卷表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_coupon", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_coupon` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `type` int(1) DEFAULT NULL COMMENT '优惠卷类型;0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠券',\n `name` varchar(100) DEFAULT NULL,\n `platform` int(1) DEFAULT NULL COMMENT '使用平台:0->全部;1->移动;2->PC',\n `count` int(11) DEFAULT NULL COMMENT '数量',\n `amount` decimal(10,2) DEFAULT NULL COMMENT '金额',\n `per_limit` int(11) DEFAULT NULL COMMENT '每人限领张数',\n `min_point` decimal(10,2) DEFAULT NULL COMMENT '使用门槛;0表示无门槛',\n `start_time` datetime DEFAULT NULL,\n `end_time` datetime DEFAULT NULL,\n `use_type` int(1) DEFAULT NULL COMMENT '使用类型:0->全场通用;1->指定分类;2->指定商品',\n `note` varchar(200) DEFAULT NULL COMMENT '备注',\n `publish_count` int(11) DEFAULT NULL COMMENT '发行数量',\n `use_count` int(11) DEFAULT NULL COMMENT '已使用数量',\n `receive_count` int(11) DEFAULT NULL COMMENT '领取数量',\n `enable_time` datetime DEFAULT NULL COMMENT '可以领取的日期',\n `code` varchar(64) DEFAULT NULL COMMENT '优惠码',\n `member_level` int(1) DEFAULT NULL COMMENT '可领取的会员类型:0->无限时',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠卷表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠卷类型;0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠券", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "platform", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用平台:0->全部;1->移动;2->PC", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "platform" + }, + { + "objectType": "TableField_MYSQL", + "name": "count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "count" + }, + { + "objectType": "TableField_MYSQL", + "name": "amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "per_limit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每人限领张数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "per_limit" + }, + { + "objectType": "TableField_MYSQL", + "name": "min_point", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用门槛;0表示无门槛", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "min_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用类型:0->全场通用;1->指定分类;2->指定商品", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "publish_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发行数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "publish_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "已使用数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "领取数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "enable_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可以领取的日期", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "enable_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "code", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "code" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_level", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可领取的会员类型:0->无限时", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_level" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_coupon_history", + "comment": "优惠券使用、领取历史表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_coupon_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 49152, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_coupon_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `coupon_id` bigint(20) DEFAULT NULL,\n `member_id` bigint(20) DEFAULT NULL,\n `order_id` bigint(20) DEFAULT NULL COMMENT '订单id',\n `coupon_code` varchar(64) DEFAULT NULL,\n `member_nickname` varchar(64) DEFAULT NULL COMMENT '领取人昵称',\n `get_type` int(1) DEFAULT NULL COMMENT '获取类型:0->后台赠送;1->主动获取',\n `create_time` datetime DEFAULT NULL,\n `use_status` int(1) DEFAULT NULL COMMENT '使用状态:0->未使用;1->已使用;2->已过期',\n `use_time` datetime DEFAULT NULL COMMENT '使用时间',\n `order_sn` varchar(100) DEFAULT NULL COMMENT '订单号码',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_37` (`coupon_id`),\n KEY `FK_Reference_38` (`member_id`),\n KEY `FK_Reference_76` (`order_id`),\n CONSTRAINT `FK_Reference_37` FOREIGN KEY (`coupon_id`) REFERENCES `sms_coupon` (`id`),\n CONSTRAINT `FK_Reference_38` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_76` FOREIGN KEY (`order_id`) REFERENCES `oms_order` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠券使用、领取历史表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_code", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nickname", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "领取人昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nickname" + }, + { + "objectType": "TableField_MYSQL", + "name": "get_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "获取类型:0->后台赠送;1->主动获取", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "get_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用状态:0->未使用;1->已使用;2->已过期", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_sn", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单号码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_sn" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_37", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_37", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "coupon_id", + "keyLength": 0, + "order": "", + "oldName": "coupon_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_38", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_38", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_76", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_76", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "order_id", + "keyLength": 0, + "order": "", + "oldName": "order_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_37", + "fields": [ + "coupon_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_coupon", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_37" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_38", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_38" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_76", + "fields": [ + "order_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_order", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_76" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_coupon_product_category_relation", + "comment": "优惠券和产品分类关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_coupon_product_category_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_coupon_product_category_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `coupon_id` bigint(20) DEFAULT NULL,\n `product_category_id` bigint(20) DEFAULT NULL,\n `product_category_name` varchar(200) DEFAULT NULL COMMENT '产品分类名称',\n `parent_category_name` varchar(200) DEFAULT NULL COMMENT '父分类名称',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_35` (`coupon_id`),\n KEY `FK_Reference_36` (`product_category_id`),\n CONSTRAINT `FK_Reference_35` FOREIGN KEY (`coupon_id`) REFERENCES `sms_coupon` (`id`),\n CONSTRAINT `FK_Reference_36` FOREIGN KEY (`product_category_id`) REFERENCES `pms_product_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠券和产品分类关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "parent_category_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "父分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "parent_category_name" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_35", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_35", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "coupon_id", + "keyLength": 0, + "order": "", + "oldName": "coupon_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_36", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_36", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_35", + "fields": [ + "coupon_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_coupon", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_35" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_36", + "fields": [ + "product_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_36" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_coupon_product_relation", + "comment": "优惠券和产品的关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_coupon_product_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_coupon_product_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `coupon_id` bigint(20) DEFAULT NULL,\n `product_id` bigint(20) DEFAULT NULL,\n `product_name` varchar(500) DEFAULT NULL COMMENT '商品名称',\n `product_sn` varchar(200) DEFAULT NULL COMMENT '商品编码',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_33` (`coupon_id`),\n KEY `FK_Reference_34` (`product_id`),\n CONSTRAINT `FK_Reference_33` FOREIGN KEY (`coupon_id`) REFERENCES `sms_coupon` (`id`),\n CONSTRAINT `FK_Reference_34` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠券和产品的关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sn", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品编码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sn" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_33", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_33", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "coupon_id", + "keyLength": 0, + "order": "", + "oldName": "coupon_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_34", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_34", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_33", + "fields": [ + "coupon_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_coupon", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_33" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_34", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_34" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_flash_promotion", + "comment": "限时购表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_flash_promotion", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_flash_promotion` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `title` varchar(200) DEFAULT NULL,\n `start_date` date DEFAULT NULL COMMENT '开始日期',\n `end_date` date DEFAULT NULL COMMENT '结束日期',\n `status` int(1) DEFAULT NULL COMMENT '上下线状态',\n `create_time` datetime DEFAULT NULL COMMENT '秒杀时间段名称',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='限时购表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "title", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "title" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_date", + "type": "date", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "开始日期", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_date" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_date", + "type": "date", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "结束日期", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_date" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上下线状态", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "秒杀时间段名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_flash_promotion_log", + "comment": "限时购通知记录", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_flash_promotion_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_flash_promotion_log` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `product_id` bigint(20) DEFAULT NULL,\n `member_phone` varchar(64) DEFAULT NULL,\n `product_name` varchar(100) DEFAULT NULL,\n `subscribe_time` datetime DEFAULT NULL COMMENT '会员订阅时间',\n `send_time` datetime DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_44` (`member_id`),\n KEY `FK_Reference_45` (`product_id`),\n CONSTRAINT `FK_Reference_44` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_45` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='限时购通知记录'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_phone", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "subscribe_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "会员订阅时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subscribe_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "send_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "send_time" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_44", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_44", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_45", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_45", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_44", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_44" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_45", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_45" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_flash_promotion_product_relation", + "comment": "商品限时购与商品关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_flash_promotion_product_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 49152, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_flash_promotion_product_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',\n `flash_promotion_id` bigint(20) DEFAULT NULL,\n `flash_promotion_session_id` bigint(20) DEFAULT NULL COMMENT '编号',\n `product_id` bigint(20) DEFAULT NULL,\n `flash_promotion_price` decimal(10,2) DEFAULT NULL COMMENT '限时购价格',\n `flash_promotion_count` int(11) DEFAULT NULL COMMENT '限时购数量',\n `flash_promotion_limit` int(11) DEFAULT NULL COMMENT '每人限购数量',\n `sort` int(11) DEFAULT NULL COMMENT '排序',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_77` (`flash_promotion_id`),\n KEY `FK_Reference_78` (`flash_promotion_session_id`),\n KEY `FK_Reference_79` (`product_id`),\n CONSTRAINT `FK_Reference_77` FOREIGN KEY (`flash_promotion_id`) REFERENCES `sms_flash_promotion` (`id`),\n CONSTRAINT `FK_Reference_78` FOREIGN KEY (`flash_promotion_session_id`) REFERENCES `sms_flash_promotion_session` (`id`),\n CONSTRAINT `FK_Reference_79` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品限时购与商品关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_session_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_session_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "限时购价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "限时购数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_limit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每人限购数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_limit" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_77", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_77", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "flash_promotion_id", + "keyLength": 0, + "order": "", + "oldName": "flash_promotion_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_78", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_78", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "flash_promotion_session_id", + "keyLength": 0, + "order": "", + "oldName": "flash_promotion_session_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_79", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_79", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_77", + "fields": [ + "flash_promotion_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_flash_promotion", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_77" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_78", + "fields": [ + "flash_promotion_session_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_flash_promotion_session", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_78" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_79", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_79" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_flash_promotion_session", + "comment": "限时购场次表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_flash_promotion_session", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_flash_promotion_session` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',\n `name` varchar(200) DEFAULT NULL COMMENT '场次名称',\n `start_time` time DEFAULT NULL COMMENT '每日开始时间',\n `end_time` time DEFAULT NULL COMMENT '每日结束时间',\n `status` int(1) DEFAULT NULL COMMENT '启用状态:0->不启用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='限时购场次表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "场次名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_time", + "type": "time", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每日开始时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_time", + "type": "time", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每日结束时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "启用状态:0->不启用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_advertise", + "comment": "首页轮播广告表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_advertise", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_advertise` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `type` int(1) DEFAULT NULL COMMENT '轮播位置:0->PC首页轮播;1->app首页轮播',\n `pic` varchar(500) DEFAULT NULL,\n `start_time` datetime DEFAULT NULL,\n `end_time` datetime DEFAULT NULL,\n `status` int(1) DEFAULT NULL COMMENT '上下线状态:0->下线;1->上线',\n `click_count` int(11) DEFAULT NULL COMMENT '点击数',\n `order_count` int(11) DEFAULT NULL COMMENT '下单数',\n `url` varchar(500) DEFAULT NULL COMMENT '链接地址',\n `note` varchar(500) DEFAULT NULL COMMENT '备注',\n `sort` int(11) DEFAULT '0' COMMENT '排序',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='首页轮播广告表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "轮播位置:0->PC首页轮播;1->app首页轮播", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上下线状态:0->下线;1->上线", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "click_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "点击数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "click_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "下单数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "url", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "链接地址", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "url" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_brand", + "comment": "首页推荐品牌表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_brand", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_brand` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `brand_id` bigint(20) DEFAULT NULL,\n `brand_name` varchar(64) DEFAULT NULL,\n `recommend_status` int(1) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_39` (`brand_id`),\n CONSTRAINT `FK_Reference_39` FOREIGN KEY (`brand_id`) REFERENCES `pms_brand` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='首页推荐品牌表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_39", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_39", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "brand_id", + "keyLength": 0, + "order": "", + "oldName": "brand_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_39", + "fields": [ + "brand_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_brand", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_39" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_new_product", + "comment": "新鲜好物表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_new_product", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_new_product` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `product_name` varchar(64) DEFAULT NULL,\n `recommend_status` int(1) DEFAULT NULL,\n `sort` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_40` (`product_id`),\n CONSTRAINT `FK_Reference_40` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='新鲜好物表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_40", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_40", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_40", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_40" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_recommend_product", + "comment": "人气推荐商品表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_recommend_product", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_recommend_product` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `product_name` varchar(64) DEFAULT NULL,\n `recommend_status` int(1) DEFAULT NULL,\n `sort` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_41` (`product_id`),\n CONSTRAINT `FK_Reference_41` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人气推荐商品表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_41", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_41", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_41", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_41" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_recommend_subject", + "comment": "首页推荐专题表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_recommend_subject", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_recommend_subject` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `subject_id` bigint(20) DEFAULT NULL,\n `subject_name` varchar(64) DEFAULT NULL,\n `recommend_status` int(1) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_42` (`subject_id`),\n CONSTRAINT `FK_Reference_42` FOREIGN KEY (`subject_id`) REFERENCES `cms_subject` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='首页推荐专题表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "subject_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subject_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "subject_name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subject_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_42", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_42", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "subject_id", + "keyLength": 0, + "order": "", + "oldName": "subject_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_42", + "fields": [ + "subject_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_subject", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_42" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin", + "comment": "后台用户表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `username` varchar(64) DEFAULT NULL COMMENT '用户名',\n `password` varchar(64) DEFAULT NULL COMMENT '密码',\n `icon` varchar(500) DEFAULT NULL COMMENT '头像',\n `email` varchar(100) DEFAULT NULL COMMENT '邮箱',\n `nick_name` varchar(200) DEFAULT NULL COMMENT '昵称',\n `note` varchar(500) DEFAULT NULL COMMENT '备注信息',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `login_time` datetime DEFAULT NULL COMMENT '最后登录时间',\n `status` int(1) DEFAULT '1' COMMENT '帐号启用状态:0->禁用;1->启用',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "username" + }, + { + "objectType": "TableField_MYSQL", + "name": "password", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "密码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "password" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "头像", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "email", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "邮箱", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "email" + }, + { + "objectType": "TableField_MYSQL", + "name": "nick_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注信息", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "login_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "最后登录时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "login_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "1", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "帐号启用状态:0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_login_log", + "comment": "后台用户登录日志表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_login_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_login_log` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `ip` varchar(64) DEFAULT NULL,\n `address` varchar(100) DEFAULT NULL,\n `user_agent` varchar(100) DEFAULT NULL COMMENT '浏览器登录类型',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_46` (`admin_id`),\n CONSTRAINT `FK_Reference_46` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户登录日志表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "ip", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "ip" + }, + { + "objectType": "TableField_MYSQL", + "name": "address", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "address" + }, + { + "objectType": "TableField_MYSQL", + "name": "user_agent", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "浏览器登录类型", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "user_agent" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_46", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_46", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_46", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_46" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_permission_relation", + "comment": "后台用户和权限关系表(除角色中定义的权限以外的加减权限)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_permission_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_permission_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `permission_id` bigint(20) DEFAULT NULL,\n `type` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_73` (`admin_id`),\n KEY `FK_Reference_74` (`permission_id`),\n CONSTRAINT `FK_Reference_73` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`),\n CONSTRAINT `FK_Reference_74` FOREIGN KEY (`permission_id`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户和权限关系表(除角色中定义的权限以外的加减权限)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "permission_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "permission_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_73", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_73", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_74", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_74", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "permission_id", + "keyLength": 0, + "order": "", + "oldName": "permission_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_73", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_73" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_74", + "fields": [ + "permission_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_74" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_role_relation", + "comment": "后台用户和角色关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_role_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_role_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `role_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_69` (`admin_id`),\n KEY `FK_Reference_70` (`role_id`),\n CONSTRAINT `FK_Reference_69` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`),\n CONSTRAINT `FK_Reference_70` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户和角色关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_69", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_69", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_70", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_70", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_69", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_69" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_70", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_70" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_growth_change_history", + "comment": "成长值变化历史记录表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_growth_change_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_growth_change_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `change_type` int(1) DEFAULT NULL COMMENT '改变类型:0->增加;1->减少',\n `change_count` int(11) DEFAULT NULL COMMENT '积分改变数量',\n `operate_man` varchar(100) DEFAULT NULL COMMENT '操作人员',\n `operate_note` varchar(200) DEFAULT NULL COMMENT '操作备注',\n `source_type` int(1) DEFAULT NULL COMMENT '积分来源:0->购物;1->管理员修改',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_56` (`member_id`),\n CONSTRAINT `FK_Reference_56` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='成长值变化历史记录表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "改变类型:0->增加;1->减少", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分改变数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_note" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分来源:0->购物;1->管理员修改", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_56", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_56", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_56", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_56" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_integration_change_history", + "comment": "积分变化历史记录表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_integration_change_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_integration_change_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `change_type` int(1) DEFAULT NULL COMMENT '改变类型:0->增加;1->减少',\n `change_count` int(11) DEFAULT NULL COMMENT '积分改变数量',\n `operate_man` varchar(100) DEFAULT NULL COMMENT '操作人员',\n `operate_note` varchar(200) DEFAULT NULL COMMENT '操作备注',\n `source_type` int(1) DEFAULT NULL COMMENT '积分来源:0->购物;1->管理员修改',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_55` (`member_id`),\n CONSTRAINT `FK_Reference_55` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='积分变化历史记录表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "改变类型:0->增加;1->减少", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分改变数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_note" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分来源:0->购物;1->管理员修改", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_55", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_55", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_55", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_55" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_integration_consume_setting", + "comment": "积分消费设置", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_integration_consume_setting", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_integration_consume_setting` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `deduction_per_amount` int(11) DEFAULT NULL COMMENT '每一元需要抵扣的积分数量',\n `max_percent_per_order` int(11) DEFAULT NULL COMMENT '每笔订单最高抵用百分比',\n `use_unit` int(11) DEFAULT NULL COMMENT '每次使用积分最小单位100',\n `coupon_status` int(1) DEFAULT NULL COMMENT '是否可以和优惠券同用;0->不可以;1->可以',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='积分消费设置'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "deduction_per_amount", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每一元需要抵扣的积分数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "deduction_per_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "max_percent_per_order", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每笔订单最高抵用百分比", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "max_percent_per_order" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_unit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每次使用积分最小单位100", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_unit" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否可以和优惠券同用;0->不可以;1->可以", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_status" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member", + "comment": "会员表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_level_id` bigint(20) DEFAULT NULL,\n `username` varchar(64) DEFAULT NULL COMMENT '用户名',\n `password` varchar(64) DEFAULT NULL COMMENT '密码',\n `nickname` varchar(64) DEFAULT NULL COMMENT '昵称',\n `phone` varchar(64) DEFAULT NULL COMMENT '手机号码',\n `status` int(1) DEFAULT NULL COMMENT '帐号启用状态:0->禁用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '注册时间',\n `icon` varchar(500) DEFAULT NULL COMMENT '头像',\n `gender` int(1) DEFAULT NULL COMMENT '性别:0->未知;1->男;2->女',\n `birthday` date DEFAULT NULL COMMENT '生日',\n `city` varchar(64) DEFAULT NULL COMMENT '所做城市',\n `job` varchar(100) DEFAULT NULL COMMENT '职业',\n `personalized_signature` varchar(200) DEFAULT NULL COMMENT '个性签名',\n `source_type` int(1) DEFAULT NULL COMMENT '用户来源',\n `integration` int(11) DEFAULT NULL COMMENT '积分',\n `growth` int(11) DEFAULT NULL COMMENT '成长值',\n `luckey_count` int(11) DEFAULT NULL COMMENT '剩余抽奖次数',\n `history_integration` int(11) DEFAULT NULL COMMENT '历史积分数量',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_47` (`member_level_id`),\n CONSTRAINT `FK_Reference_47` FOREIGN KEY (`member_level_id`) REFERENCES `ums_member_level` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_level_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_level_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "username" + }, + { + "objectType": "TableField_MYSQL", + "name": "password", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "密码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "password" + }, + { + "objectType": "TableField_MYSQL", + "name": "nickname", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "nickname" + }, + { + "objectType": "TableField_MYSQL", + "name": "phone", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "手机号码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "帐号启用状态:0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "注册时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "头像", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "gender", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "性别:0->未知;1->男;2->女", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gender" + }, + { + "objectType": "TableField_MYSQL", + "name": "birthday", + "type": "date", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "生日", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "birthday" + }, + { + "objectType": "TableField_MYSQL", + "name": "city", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "所做城市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "city" + }, + { + "objectType": "TableField_MYSQL", + "name": "job", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "职业", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "job" + }, + { + "objectType": "TableField_MYSQL", + "name": "personalized_signature", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "个性签名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "personalized_signature" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户来源", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "integration" + }, + { + "objectType": "TableField_MYSQL", + "name": "growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "luckey_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "剩余抽奖次数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "luckey_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "history_integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "历史积分数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "history_integration" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_47", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_47", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_level_id", + "keyLength": 0, + "order": "", + "oldName": "member_level_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_47", + "fields": [ + "member_level_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member_level", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_47" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_level", + "comment": "会员等级表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_level", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_level` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `growth_point` int(11) DEFAULT NULL,\n `default_status` int(1) DEFAULT NULL COMMENT '是否为默认等级:0->不是;1->是',\n `free_freight_point` decimal(10,2) DEFAULT NULL COMMENT '免运费标准',\n `comment_growth_point` int(11) DEFAULT NULL COMMENT '每次评价获取的成长值',\n `priviledge_free_freight` int(1) DEFAULT NULL COMMENT '是否有免邮特权',\n `priviledge_sign_in` int(1) DEFAULT NULL COMMENT '是否有签到特权',\n `priviledge_comment` int(1) DEFAULT NULL COMMENT '是否有评论获奖励特权',\n `priviledge_promotion` int(1) DEFAULT NULL COMMENT '是否有专享活动特权',\n `priviledge_member_price` int(1) DEFAULT NULL COMMENT '是否有会员价格特权',\n `priviledge_birthday` int(1) DEFAULT NULL COMMENT '是否有生日特权',\n `note` varchar(200) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员等级表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "growth_point", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "growth_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "default_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否为默认等级:0->不是;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "default_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "free_freight_point", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "免运费标准", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "free_freight_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_growth_point", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每次评价获取的成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_growth_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_free_freight", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有免邮特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_free_freight" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_sign_in", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有签到特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_sign_in" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_comment", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有评论获奖励特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_comment" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_promotion", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有专享活动特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_promotion" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_member_price", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有会员价格特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_member_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_birthday", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有生日特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_birthday" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_login_log", + "comment": "会员登录记录", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_login_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_login_log` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `ip` varchar(64) DEFAULT NULL,\n `city` varchar(64) DEFAULT NULL,\n `login_type` int(1) DEFAULT NULL COMMENT '登录类型:0->PC;1->android;2->ios;3->小程序',\n `province` varchar(64) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_52` (`member_id`),\n CONSTRAINT `FK_Reference_52` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员登录记录'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "ip", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "ip" + }, + { + "objectType": "TableField_MYSQL", + "name": "city", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "city" + }, + { + "objectType": "TableField_MYSQL", + "name": "login_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "登录类型:0->PC;1->android;2->ios;3->小程序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "login_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "province", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "province" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_52", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_52", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_52", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_52" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_member_tag_relation", + "comment": "用户和标签关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_member_tag_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_member_tag_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `tag_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_53` (`member_id`),\n KEY `FK_Reference_54` (`tag_id`),\n CONSTRAINT `FK_Reference_53` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_54` FOREIGN KEY (`tag_id`) REFERENCES `ums_member_tag` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户和标签关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "tag_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "tag_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_53", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_53", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_54", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_54", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "tag_id", + "keyLength": 0, + "order": "", + "oldName": "tag_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_53", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_53" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_54", + "fields": [ + "tag_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member_tag", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_54" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_product_category_relation", + "comment": "会员与产品分类关系表(用户喜欢的分类)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_product_category_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_product_category_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `product_category_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_48` (`member_id`),\n KEY `FK_Reference_49` (`product_category_id`),\n CONSTRAINT `FK_Reference_48` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_49` FOREIGN KEY (`product_category_id`) REFERENCES `pms_product_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员与产品分类关系表(用户喜欢的分类)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_48", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_48", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_49", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_49", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_48", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_48" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_49", + "fields": [ + "product_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_49" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_receive_address", + "comment": "会员收货地址表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_receive_address", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_receive_address` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `name` varchar(100) DEFAULT NULL COMMENT '收货人名称',\n `phone_number` varchar(64) DEFAULT NULL,\n `default_status` int(1) DEFAULT NULL COMMENT '是否为默认',\n `post_code` varchar(100) DEFAULT NULL COMMENT '邮政编码',\n `province` varchar(100) DEFAULT NULL COMMENT '省份/直辖市',\n `city` varchar(100) DEFAULT NULL COMMENT '城市',\n `region` varchar(100) DEFAULT NULL COMMENT '区',\n `detail_address` varchar(128) DEFAULT NULL COMMENT '详细地址(街道)',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_51` (`member_id`),\n CONSTRAINT `FK_Reference_51` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员收货地址表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "phone_number", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "phone_number" + }, + { + "objectType": "TableField_MYSQL", + "name": "default_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否为默认", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "default_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "post_code", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "邮政编码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "post_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "province", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "省份/直辖市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "province" + }, + { + "objectType": "TableField_MYSQL", + "name": "city", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "城市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "city" + }, + { + "objectType": "TableField_MYSQL", + "name": "region", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "区", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "region" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_address", + "type": "varchar", + "length": 128, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "详细地址(街道)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_address" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_51", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_51", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_51", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_51" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_rule_setting", + "comment": "会员积分成长规则表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_rule_setting", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_rule_setting` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `continue_sign_day` int(11) DEFAULT NULL COMMENT '连续签到天数',\n `continue_sign_point` int(11) DEFAULT NULL COMMENT '连续签到赠送数量',\n `consume_per_point` decimal(10,2) DEFAULT NULL COMMENT '每消费多少元获取1个点',\n `low_order_amount` decimal(10,2) DEFAULT NULL COMMENT '最低获取点数的订单金额',\n `max_point_per_order` int(11) DEFAULT NULL COMMENT '每笔订单最高获取点数',\n `type` int(1) DEFAULT NULL COMMENT '类型:0->积分规则;1->成长值规则',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员积分成长规则表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "continue_sign_day", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "连续签到天数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "continue_sign_day" + }, + { + "objectType": "TableField_MYSQL", + "name": "continue_sign_point", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "连续签到赠送数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "continue_sign_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "consume_per_point", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每消费多少元获取1个点", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "consume_per_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "low_order_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "最低获取点数的订单金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "low_order_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "max_point_per_order", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每笔订单最高获取点数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "max_point_per_order" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "类型:0->积分规则;1->成长值规则", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_statistics_info", + "comment": "会员统计信息", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_statistics_info", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_statistics_info` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `consume_amount` decimal(10,2) DEFAULT NULL COMMENT '累计消费金额',\n `order_count` int(11) DEFAULT NULL COMMENT '订单数量',\n `coupon_count` int(11) DEFAULT NULL COMMENT '优惠券数量',\n `comment_count` int(11) DEFAULT NULL COMMENT '评价数',\n `return_order_count` int(11) DEFAULT NULL COMMENT '退货数量',\n `login_count` int(11) DEFAULT NULL COMMENT '登录次数',\n `attend_count` int(11) DEFAULT NULL COMMENT '关注数量',\n `fans_count` int(11) DEFAULT NULL COMMENT '粉丝数量',\n `collect_product_count` int(11) DEFAULT NULL,\n `collect_subject_count` int(11) DEFAULT NULL,\n `collect_topic_count` int(11) DEFAULT NULL,\n `collect_comment_count` int(11) DEFAULT NULL,\n `invite_friend_count` int(11) DEFAULT NULL,\n `recent_order_time` datetime DEFAULT NULL COMMENT '最后一次下订单时间',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_50` (`member_id`),\n CONSTRAINT `FK_Reference_50` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员统计信息'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "consume_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "累计消费金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "consume_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠券数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评价数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "return_order_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "return_order_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "login_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "登录次数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "login_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "attend_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "关注数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "attend_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "fans_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "粉丝数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "fans_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_subject_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_subject_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_topic_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_topic_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_comment_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_comment_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "invite_friend_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "invite_friend_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "recent_order_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "最后一次下订单时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recent_order_time" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_50", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_50", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_50", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_50" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_tag", + "comment": "用户标签表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_tag", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_tag` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `finish_order_count` int(11) DEFAULT NULL COMMENT '自动打标签完成订单数量',\n `finish_order_amount` decimal(10,2) DEFAULT NULL COMMENT '自动打标签完成订单金额',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户标签表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "finish_order_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "自动打标签完成订单数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "finish_order_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "finish_order_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "自动打标签完成订单金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "finish_order_amount" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_task", + "comment": "会员任务表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_task", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_task` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `growth` int(11) DEFAULT NULL COMMENT '赠送成长值',\n `intergration` int(11) DEFAULT NULL COMMENT '赠送积分',\n `type` int(1) DEFAULT NULL COMMENT '任务类型:0->新手任务;1->日常任务',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员任务表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "intergration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "intergration" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "任务类型:0->新手任务;1->日常任务", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_menu", + "comment": "后台菜单表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_menu", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_menu` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `parent_id` bigint(20) DEFAULT NULL COMMENT '父级ID',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `title` varchar(100) DEFAULT NULL COMMENT '菜单名称',\n `level` int(4) DEFAULT NULL COMMENT '菜单级数',\n `sort` int(4) DEFAULT NULL COMMENT '菜单排序',\n `name` varchar(100) DEFAULT NULL COMMENT '前端名称',\n `icon` varchar(200) DEFAULT NULL COMMENT '前端图标',\n `hidden` int(1) DEFAULT NULL COMMENT '前端隐藏',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_80` (`parent_id`),\n CONSTRAINT `FK_Reference_80` FOREIGN KEY (`parent_id`) REFERENCES `ums_menu` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台菜单表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "parent_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "父级ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "parent_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "title", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "title" + }, + { + "objectType": "TableField_MYSQL", + "name": "level", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单级数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "level" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "hidden", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端隐藏", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "hidden" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_80", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_80", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "parent_id", + "keyLength": 0, + "order": "", + "oldName": "parent_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_80", + "fields": [ + "parent_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_menu", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_80" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_permission", + "comment": "后台用户权限表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_permission", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_permission` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `pid` bigint(20) DEFAULT NULL COMMENT '父级权限id',\n `name` varchar(100) DEFAULT NULL COMMENT '名称',\n `value` varchar(200) DEFAULT NULL COMMENT '权限值',\n `icon` varchar(500) DEFAULT NULL COMMENT '图标',\n `type` int(1) DEFAULT NULL COMMENT '权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)',\n `uri` varchar(200) DEFAULT NULL COMMENT '前端资源路径',\n `status` int(1) DEFAULT NULL COMMENT '启用状态;0->禁用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `sort` int(11) DEFAULT NULL COMMENT '排序',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_68` (`pid`),\n CONSTRAINT `FK_Reference_68` FOREIGN KEY (`pid`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户权限表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "pid", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "父级权限id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pid" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "value", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "权限值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "value" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + }, + { + "objectType": "TableField_MYSQL", + "name": "uri", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端资源路径", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "uri" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "启用状态;0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_68", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_68", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "pid", + "keyLength": 0, + "order": "", + "oldName": "pid" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_68", + "fields": [ + "pid" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_68" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_resource", + "comment": "后台资源表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_resource", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_resource` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `category_id` bigint(20) DEFAULT NULL COMMENT '资源分类ID',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `name` varchar(200) DEFAULT NULL COMMENT '资源名称',\n `url` varchar(200) DEFAULT NULL COMMENT '资源URL',\n `description` varchar(500) DEFAULT NULL COMMENT '描述',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_85` (`category_id`),\n CONSTRAINT `FK_Reference_85` FOREIGN KEY (`category_id`) REFERENCES `ums_resource_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台资源表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源分类ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "url", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源URL", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "url" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_85", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_85", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "category_id", + "keyLength": 0, + "order": "", + "oldName": "category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_85", + "fields": [ + "category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_resource_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_85" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_resource_category", + "comment": "资源分类表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_resource_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_resource_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `name` varchar(200) DEFAULT NULL COMMENT '分类名称',\n `sort` int(4) DEFAULT NULL COMMENT '排序',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='资源分类表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role", + "comment": "后台用户角色表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL COMMENT '名称',\n `description` varchar(500) DEFAULT NULL COMMENT '描述',\n `admin_count` int(11) DEFAULT NULL COMMENT '后台用户数量',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `status` int(1) DEFAULT '1' COMMENT '启用状态:0->禁用;1->启用',\n `sort` int(11) DEFAULT '0',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户角色表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "后台用户数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "1", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "启用状态:0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_menu_relation", + "comment": "后台角色菜单关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_menu_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_menu_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',\n `menu_id` bigint(20) DEFAULT NULL COMMENT '菜单ID',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_81` (`role_id`),\n KEY `FK_Reference_82` (`menu_id`),\n CONSTRAINT `FK_Reference_81` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_82` FOREIGN KEY (`menu_id`) REFERENCES `ums_menu` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台角色菜单关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "角色ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "menu_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "menu_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_81", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_81", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_82", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_82", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "menu_id", + "keyLength": 0, + "order": "", + "oldName": "menu_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_81", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_81" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_82", + "fields": [ + "menu_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_menu", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_82" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_permission_relation", + "comment": "后台用户角色和权限关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_permission_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_permission_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL,\n `permission_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_71` (`role_id`),\n KEY `FK_Reference_72` (`permission_id`),\n CONSTRAINT `FK_Reference_71` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_72` FOREIGN KEY (`permission_id`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户角色和权限关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "permission_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "permission_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_71", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_71", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_72", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_72", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "permission_id", + "keyLength": 0, + "order": "", + "oldName": "permission_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_71", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_71" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_72", + "fields": [ + "permission_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_72" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_resource_relation", + "comment": "后台角色资源关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_resource_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_resource_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',\n `resource_id` bigint(20) DEFAULT NULL COMMENT '资源ID',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_83` (`role_id`),\n KEY `FK_Reference_84` (`resource_id`),\n CONSTRAINT `FK_Reference_83` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_84` FOREIGN KEY (`resource_id`) REFERENCES `ums_resource` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台角色资源关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "角色ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "resource_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "resource_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_83", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_83", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_84", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_84", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "resource_id", + "keyLength": 0, + "order": "", + "oldName": "resource_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_83", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_83" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_84", + "fields": [ + "resource_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_resource", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_84" + } + ], + "triggers": [], + "tablePartitions": [] + } + ], + "views": [] + } + ] + }, + "diagrams": [ + { + "name": "mall数据库模型", + "paperWidth": 5, + "paperHeight": 4, + "tableFont": "Arial Unicode MS", + "tableFontSize": 14, + "isBalckWhite": false, + "showDBSchemaName": false, + "showViewRelations": true, + "notation": "default", + "showFieldComment": false, + "showTableComment": false, + "shapes": [ + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_help", + "x": 3680, + "y": 4830, + "width": 165, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_help_category", + "x": 3910, + "y": 4850, + "width": 164, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_member_report", + "x": 2780, + "y": 4850, + "width": 243, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_prefrence_area", + "x": 1130, + "y": 3440, + "width": 173, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_prefrence_area_product_relation", + "x": 780, + "y": 3470, + "width": 299, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_subject", + "x": 3590, + "y": 250, + "width": 205, + "height": 371, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_subject_category", + "x": 3600, + "y": 30, + "width": 185, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_subject_comment", + "x": 3840, + "y": 330, + "width": 233, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_subject_product_relation", + "x": 1310, + "y": 380, + "width": 240, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_topic", + "x": 2270, + "y": 4830, + "width": 192, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_topic_category", + "x": 2540, + "y": 4890, + "width": 168, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "cms_topic_comment", + "x": 1950, + "y": 4880, + "width": 233, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_cart_item", + "x": 1920, + "y": 3210, + "width": 227, + "height": 411, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_company_address", + "x": 3300, + "y": 480, + "width": 202, + "height": 251, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order", + "x": 3280, + "y": 1710, + "width": 250, + "height": 931, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_item", + "x": 1520, + "y": 1130, + "width": 235, + "height": 471, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_operate_history", + "x": 3580, + "y": 2090, + "width": 223, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_return_apply", + "x": 3290, + "y": 780, + "width": 230, + "height": 591, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_return_reason", + "x": 4550, + "y": 30, + "width": 212, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_setting", + "x": 3400, + "y": 4850, + "width": 213, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_album", + "x": 4350, + "y": 4850, + "width": 187, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_album_pic", + "x": 4150, + "y": 4880, + "width": 153, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_brand", + "x": 260, + "y": 3940, + "width": 220, + "height": 271, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_comment", + "x": 520, + "y": 3080, + "width": 233, + "height": 351, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_comment_replay", + "x": 520, + "y": 2840, + "width": 233, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_feight_template", + "x": 610, + "y": 4570, + "width": 218, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_member_price", + "x": 2260, + "y": 3580, + "width": 237, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product", + "x": 590, + "y": 3640, + "width": 262, + "height": 891, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_attribute", + "x": 2000, + "y": 1880, + "width": 262, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_attribute_category", + "x": 1700, + "y": 2040, + "width": 258, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_attribute_value", + "x": 2010, + "y": 1710, + "width": 234, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_category", + "x": 2030, + "y": 2430, + "width": 189, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_category_attribute_relation", + "x": 1970, + "y": 2220, + "width": 321, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_full_reduction", + "x": 4260, + "y": 4440, + "width": 224, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_ladder", + "x": 4260, + "y": 4250, + "width": 175, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_operate_log", + "x": 3940, + "y": 4110, + "width": 214, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_vertify_record", + "x": 3600, + "y": 4180, + "width": 226, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_sku_stock", + "x": 1930, + "y": 3800, + "width": 218, + "height": 271, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_coupon", + "x": 2950, + "y": 2070, + "width": 183, + "height": 411, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_coupon_history", + "x": 3010, + "y": 2540, + "width": 220, + "height": 271, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_coupon_product_category_relation", + "x": 2270, + "y": 2380, + "width": 312, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_coupon_product_relation", + "x": 2930, + "y": 1610, + "width": 241, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_flash_promotion", + "x": 3320, + "y": 4110, + "width": 177, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_flash_promotion_log", + "x": 1820, + "y": 2970, + "width": 207, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_flash_promotion_product_relation", + "x": 2970, + "y": 4100, + "width": 303, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_flash_promotion_session", + "x": 3000, + "y": 3880, + "width": 240, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_advertise", + "x": 1700, + "y": 4850, + "width": 176, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_brand", + "x": 30, + "y": 4010, + "width": 183, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_new_product", + "x": 2670, + "y": 4110, + "width": 201, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_recommend_product", + "x": 2310, + "y": 4020, + "width": 255, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_recommend_subject", + "x": 3570, + "y": 670, + "width": 252, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_admin", + "x": 260, + "y": 5590, + "width": 180, + "height": 251, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_admin_login_log", + "x": 30, + "y": 5630, + "width": 181, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_admin_permission_relation", + "x": 220, + "y": 5410, + "width": 255, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_admin_role_relation", + "x": 990, + "y": 5660, + "width": 205, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_growth_change_history", + "x": 2810, + "y": 3470, + "width": 230, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_integration_change_history", + "x": 3090, + "y": 3620, + "width": 259, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_integration_consume_setting", + "x": 4600, + "y": 4850, + "width": 270, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member", + "x": 3090, + "y": 3150, + "width": 248, + "height": 431, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_level", + "x": 2540, + "y": 3370, + "width": 223, + "height": 311, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_login_log", + "x": 3450, + "y": 3450, + "width": 193, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_member_tag_relation", + "x": 3840, + "y": 3350, + "width": 279, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_product_category_relation", + "x": 1980, + "y": 2800, + "width": 317, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_receive_address", + "x": 3670, + "y": 3000, + "width": 247, + "height": 251, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_rule_setting", + "x": 3090, + "y": 4850, + "width": 237, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_statistics_info", + "x": 3390, + "y": 2780, + "width": 228, + "height": 371, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_tag", + "x": 4170, + "y": 3330, + "width": 241, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_task", + "x": 4830, + "y": 30, + "width": 158, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_menu", + "x": 1470, + "y": 5360, + "width": 162, + "height": 231, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_permission", + "x": 510, + "y": 5360, + "width": 162, + "height": 251, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_resource", + "x": 990, + "y": 5020, + "width": 180, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_resource_category", + "x": 980, + "y": 4850, + "width": 198, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_role", + "x": 990, + "y": 5380, + "width": 180, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_role_menu_relation", + "x": 1220, + "y": 5430, + "width": 201, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_role_permission_relation", + "x": 710, + "y": 5430, + "width": 240, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_role_resource_relation", + "x": 970, + "y": 5230, + "width": 226, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + } + ], + "layers": [], + "relations": [ + { + "name": "FK_Reference_32", + "sourceTableName": "cms_help", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3860, + "y": 4930 + }, + { + "x": 3895, + "y": 4930 + } + ], + "label": { + "x": 3856, + "y": 4932, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_18", + "sourceTableName": "cms_prefrence_area_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1094, + "y": 3520 + }, + { + "x": 1115, + "y": 3520 + } + ], + "label": { + "x": 1090, + "y": 3522, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_28", + "sourceTableName": "cms_subject", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3690, + "y": 235 + }, + { + "x": 3690, + "y": 216 + } + ], + "label": { + "x": 3698, + "y": 245, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_29", + "sourceTableName": "cms_subject_comment", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3825, + "y": 430 + }, + { + "x": 3810, + "y": 430 + } + ], + "label": { + "x": 3841, + "y": 432, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_26", + "sourceTableName": "cms_subject_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1565, + "y": 430 + }, + { + "x": 3575, + "y": 430 + } + ], + "label": { + "x": 1561, + "y": 432, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_31", + "sourceTableName": "cms_topic", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2477, + "y": 4970 + }, + { + "x": 2525, + "y": 4970 + } + ], + "label": { + "x": 2473, + "y": 4972, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_30", + "sourceTableName": "cms_topic_comment", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2198, + "y": 4970 + }, + { + "x": 2255, + "y": 4970 + } + ], + "label": { + "x": 2194, + "y": 4972, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_58", + "sourceTableName": "oms_order_item", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1770, + "y": 1550 + }, + { + "x": 3220, + "y": 1550 + }, + { + "x": 3220, + "y": 1760 + }, + { + "x": 3265, + "y": 1760 + } + ], + "label": { + "x": 1766, + "y": 1552, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_62", + "sourceTableName": "oms_order_operate_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3565, + "y": 2180 + }, + { + "x": 3545, + "y": 2180 + } + ], + "label": { + "x": 3581, + "y": 2182, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_63", + "sourceTableName": "oms_order_return_apply", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3400, + "y": 1386 + }, + { + "x": 3400, + "y": 1695 + } + ], + "label": { + "x": 3408, + "y": 1376, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_64", + "sourceTableName": "oms_order_return_apply", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3400, + "y": 765 + }, + { + "x": 3400, + "y": 746 + } + ], + "label": { + "x": 3408, + "y": 775, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_25", + "sourceTableName": "pms_album_pic", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4318, + "y": 4930 + }, + { + "x": 4335, + "y": 4930 + } + ], + "label": { + "x": 4314, + "y": 4932, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_24", + "sourceTableName": "pms_comment_replay", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 640, + "y": 3046 + }, + { + "x": 640, + "y": 3065 + } + ], + "label": { + "x": 648, + "y": 3036, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_19", + "sourceTableName": "cms_prefrence_area_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 765, + "y": 3520 + }, + { + "x": 730, + "y": 3520 + }, + { + "x": 730, + "y": 3625 + } + ], + "label": { + "x": 781, + "y": 3522, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_27", + "sourceTableName": "cms_subject_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1360, + "y": 506 + }, + { + "x": 1360, + "y": 3660 + }, + { + "x": 867, + "y": 3660 + } + ], + "label": { + "x": 1368, + "y": 496, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_65", + "sourceTableName": "oms_cart_item", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1905, + "y": 3570 + }, + { + "x": 1820, + "y": 3570 + }, + { + "x": 1820, + "y": 4030 + }, + { + "x": 867, + "y": 4030 + } + ], + "label": { + "x": 1921, + "y": 3557, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_59", + "sourceTableName": "oms_order_item", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1505, + "y": 1550 + }, + { + "x": 1470, + "y": 1550 + }, + { + "x": 1470, + "y": 3760 + }, + { + "x": 867, + "y": 3760 + } + ], + "label": { + "x": 1521, + "y": 1537, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_75", + "sourceTableName": "oms_order_return_apply", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3275, + "y": 1080 + }, + { + "x": 1410, + "y": 1080 + }, + { + "x": 1410, + "y": 3710 + }, + { + "x": 867, + "y": 3710 + } + ], + "label": { + "x": 3291, + "y": 1067, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_23", + "sourceTableName": "pms_comment", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 640, + "y": 3446 + }, + { + "x": 640, + "y": 3625 + } + ], + "label": { + "x": 648, + "y": 3436, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_9", + "sourceTableName": "pms_member_price", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2245, + "y": 3670 + }, + { + "x": 2200, + "y": 3670 + }, + { + "x": 2200, + "y": 4130 + }, + { + "x": 867, + "y": 4130 + } + ], + "label": { + "x": 2261, + "y": 3672, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_1", + "sourceTableName": "pms_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 575, + "y": 4080 + }, + { + "x": 495, + "y": 4080 + } + ], + "label": { + "x": 591, + "y": 4082, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_6", + "sourceTableName": "pms_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 720, + "y": 4546 + }, + { + "x": 720, + "y": 4555 + } + ], + "label": { + "x": 728, + "y": 4536, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_13", + "sourceTableName": "pms_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 867, + "y": 3900 + }, + { + "x": 1650, + "y": 3900 + }, + { + "x": 1650, + "y": 2120 + }, + { + "x": 1685, + "y": 2120 + } + ], + "label": { + "x": 863, + "y": 3887, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_12", + "sourceTableName": "pms_product_attribute", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1985, + "y": 2110 + }, + { + "x": 1973, + "y": 2110 + } + ], + "label": { + "x": 2001, + "y": 2112, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_14", + "sourceTableName": "pms_product_attribute_value", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1995, + "y": 1790 + }, + { + "x": 1590, + "y": 1790 + }, + { + "x": 1590, + "y": 3850 + }, + { + "x": 867, + "y": 3850 + } + ], + "label": { + "x": 2011, + "y": 1792, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_15", + "sourceTableName": "pms_product_attribute_value", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2130, + "y": 1856 + }, + { + "x": 2130, + "y": 1865 + } + ], + "label": { + "x": 2138, + "y": 1846, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_5", + "sourceTableName": "pms_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 867, + "y": 3940 + }, + { + "x": 1700, + "y": 3940 + }, + { + "x": 1700, + "y": 2670 + }, + { + "x": 2015, + "y": 2670 + } + ], + "label": { + "x": 863, + "y": 3927, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_20", + "sourceTableName": "pms_product_category", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2234, + "y": 2690 + }, + { + "x": 2260, + "y": 2690 + }, + { + "x": 2260, + "y": 2750 + }, + { + "x": 2200, + "y": 2750 + }, + { + "x": 2200, + "y": 2736 + } + ], + "label": { + "x": 2224, + "y": 2642, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_21", + "sourceTableName": "pms_product_category_attribute_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2130, + "y": 2346 + }, + { + "x": 2130, + "y": 2415 + } + ], + "label": { + "x": 2138, + "y": 2336, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_22", + "sourceTableName": "pms_product_category_attribute_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2130, + "y": 2205 + }, + { + "x": 2130, + "y": 2186 + } + ], + "label": { + "x": 2138, + "y": 2215, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_11", + "sourceTableName": "pms_product_full_reduction", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4245, + "y": 4500 + }, + { + "x": 867, + "y": 4500 + } + ], + "label": { + "x": 4261, + "y": 4502, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_10", + "sourceTableName": "pms_product_ladder", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4245, + "y": 4350 + }, + { + "x": 4210, + "y": 4350 + }, + { + "x": 4210, + "y": 4450 + }, + { + "x": 867, + "y": 4450 + } + ], + "label": { + "x": 4261, + "y": 4352, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_4", + "sourceTableName": "pms_product_operate_log", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3925, + "y": 4350 + }, + { + "x": 3880, + "y": 4350 + }, + { + "x": 3880, + "y": 4410 + }, + { + "x": 867, + "y": 4410 + } + ], + "label": { + "x": 3941, + "y": 4352, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_3", + "sourceTableName": "pms_product_vertify_record", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3585, + "y": 4300 + }, + { + "x": 3550, + "y": 4300 + }, + { + "x": 3550, + "y": 4360 + }, + { + "x": 867, + "y": 4360 + } + ], + "label": { + "x": 3601, + "y": 4302, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_66", + "sourceTableName": "oms_cart_item", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2040, + "y": 3636 + }, + { + "x": 2040, + "y": 3785 + } + ], + "label": { + "x": 2048, + "y": 3611, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_2", + "sourceTableName": "pms_sku_stock", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1915, + "y": 4020 + }, + { + "x": 1880, + "y": 4020 + }, + { + "x": 1880, + "y": 4080 + }, + { + "x": 867, + "y": 4080 + } + ], + "label": { + "x": 1931, + "y": 4022, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_61", + "sourceTableName": "oms_order", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3265, + "y": 2280 + }, + { + "x": 3148, + "y": 2280 + } + ], + "label": { + "x": 3281, + "y": 2267, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_37", + "sourceTableName": "sms_coupon_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3080, + "y": 2525 + }, + { + "x": 3080, + "y": 2496 + } + ], + "label": { + "x": 3088, + "y": 2535, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_76", + "sourceTableName": "sms_coupon_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3245, + "y": 2590 + }, + { + "x": 3265, + "y": 2590 + } + ], + "label": { + "x": 3241, + "y": 2592, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_35", + "sourceTableName": "sms_coupon_product_category_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2597, + "y": 2430 + }, + { + "x": 2935, + "y": 2430 + } + ], + "label": { + "x": 2593, + "y": 2432, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_36", + "sourceTableName": "sms_coupon_product_category_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2255, + "y": 2480 + }, + { + "x": 2234, + "y": 2480 + } + ], + "label": { + "x": 2271, + "y": 2482, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_33", + "sourceTableName": "sms_coupon_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3050, + "y": 1776 + }, + { + "x": 3050, + "y": 2055 + } + ], + "label": { + "x": 3058, + "y": 1766, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_34", + "sourceTableName": "sms_coupon_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2915, + "y": 1660 + }, + { + "x": 1530, + "y": 1660 + }, + { + "x": 1530, + "y": 3800 + }, + { + "x": 867, + "y": 3800 + } + ], + "label": { + "x": 2931, + "y": 1662, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_45", + "sourceTableName": "sms_flash_promotion_log", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1805, + "y": 3110 + }, + { + "x": 1760, + "y": 3110 + }, + { + "x": 1760, + "y": 3990 + }, + { + "x": 867, + "y": 3990 + } + ], + "label": { + "x": 1821, + "y": 3112, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_77", + "sourceTableName": "sms_flash_promotion_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3288, + "y": 4200 + }, + { + "x": 3305, + "y": 4200 + } + ], + "label": { + "x": 3284, + "y": 4202, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_79", + "sourceTableName": "sms_flash_promotion_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2955, + "y": 4250 + }, + { + "x": 2920, + "y": 4250 + }, + { + "x": 2920, + "y": 4310 + }, + { + "x": 867, + "y": 4310 + } + ], + "label": { + "x": 2971, + "y": 4252, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_78", + "sourceTableName": "sms_flash_promotion_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3120, + "y": 4085 + }, + { + "x": 3120, + "y": 4066 + } + ], + "label": { + "x": 3128, + "y": 4095, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_39", + "sourceTableName": "sms_home_brand", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 228, + "y": 4080 + }, + { + "x": 245, + "y": 4080 + } + ], + "label": { + "x": 224, + "y": 4082, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_40", + "sourceTableName": "sms_home_new_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2655, + "y": 4210 + }, + { + "x": 2620, + "y": 4210 + }, + { + "x": 2620, + "y": 4220 + }, + { + "x": 867, + "y": 4220 + } + ], + "label": { + "x": 2671, + "y": 4212, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_41", + "sourceTableName": "sms_home_recommend_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2295, + "y": 4120 + }, + { + "x": 2260, + "y": 4120 + }, + { + "x": 2260, + "y": 4170 + }, + { + "x": 867, + "y": 4170 + } + ], + "label": { + "x": 2311, + "y": 4122, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_42", + "sourceTableName": "sms_home_recommend_subject", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3690, + "y": 655 + }, + { + "x": 3690, + "y": 636 + } + ], + "label": { + "x": 3698, + "y": 665, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_46", + "sourceTableName": "ums_admin_login_log", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 226, + "y": 5710 + }, + { + "x": 245, + "y": 5710 + } + ], + "label": { + "x": 222, + "y": 5712, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_73", + "sourceTableName": "ums_admin_permission_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 360, + "y": 5556 + }, + { + "x": 360, + "y": 5575 + } + ], + "label": { + "x": 368, + "y": 5546, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_69", + "sourceTableName": "ums_admin_role_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 975, + "y": 5710 + }, + { + "x": 455, + "y": 5710 + } + ], + "label": { + "x": 991, + "y": 5712, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_67", + "sourceTableName": "oms_cart_item", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2162, + "y": 3320 + }, + { + "x": 3075, + "y": 3320 + } + ], + "label": { + "x": 2158, + "y": 3307, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_57", + "sourceTableName": "oms_order", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3330, + "y": 2656 + }, + { + "x": 3330, + "y": 2690 + }, + { + "x": 3320, + "y": 2690 + }, + { + "x": 3320, + "y": 3135 + } + ], + "label": { + "x": 3338, + "y": 2631, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_38", + "sourceTableName": "sms_coupon_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3180, + "y": 2826 + }, + { + "x": 3180, + "y": 3135 + } + ], + "label": { + "x": 3188, + "y": 2816, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_44", + "sourceTableName": "sms_flash_promotion_log", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2042, + "y": 3110 + }, + { + "x": 3040, + "y": 3110 + }, + { + "x": 3040, + "y": 3200 + }, + { + "x": 3075, + "y": 3200 + } + ], + "label": { + "x": 2038, + "y": 3112, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_56", + "sourceTableName": "ums_growth_change_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3055, + "y": 3520 + }, + { + "x": 3075, + "y": 3520 + } + ], + "label": { + "x": 3051, + "y": 3522, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_55", + "sourceTableName": "ums_integration_change_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3210, + "y": 3605 + }, + { + "x": 3210, + "y": 3596 + } + ], + "label": { + "x": 3218, + "y": 3615, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_60", + "sourceTableName": "pms_member_price", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2512, + "y": 3630 + }, + { + "x": 2525, + "y": 3630 + } + ], + "label": { + "x": 2508, + "y": 3632, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_47", + "sourceTableName": "ums_member", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3075, + "y": 3420 + }, + { + "x": 2778, + "y": 3420 + } + ], + "label": { + "x": 3091, + "y": 3407, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_52", + "sourceTableName": "ums_member_login_log", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3435, + "y": 3520 + }, + { + "x": 3353, + "y": 3520 + } + ], + "label": { + "x": 3451, + "y": 3522, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_53", + "sourceTableName": "ums_member_member_tag_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3825, + "y": 3400 + }, + { + "x": 3353, + "y": 3400 + } + ], + "label": { + "x": 3841, + "y": 3402, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_48", + "sourceTableName": "ums_member_product_category_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2312, + "y": 2860 + }, + { + "x": 3120, + "y": 2860 + }, + { + "x": 3120, + "y": 3135 + } + ], + "label": { + "x": 2308, + "y": 2862, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_49", + "sourceTableName": "ums_member_product_category_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 2130, + "y": 2785 + }, + { + "x": 2130, + "y": 2736 + } + ], + "label": { + "x": 2138, + "y": 2795, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_51", + "sourceTableName": "ums_member_receive_address", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3790, + "y": 3266 + }, + { + "x": 3790, + "y": 3300 + }, + { + "x": 3353, + "y": 3300 + } + ], + "label": { + "x": 3798, + "y": 3256, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_50", + "sourceTableName": "ums_member_statistics_info", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 3500, + "y": 3166 + }, + { + "x": 3500, + "y": 3200 + }, + { + "x": 3353, + "y": 3200 + } + ], + "label": { + "x": 3508, + "y": 3156, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_54", + "sourceTableName": "ums_member_member_tag_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 4134, + "y": 3400 + }, + { + "x": 4155, + "y": 3400 + } + ], + "label": { + "x": 4130, + "y": 3402, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_80", + "sourceTableName": "ums_menu", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1647, + "y": 5570 + }, + { + "x": 1670, + "y": 5570 + }, + { + "x": 1670, + "y": 5630 + }, + { + "x": 1610, + "y": 5630 + }, + { + "x": 1610, + "y": 5606 + } + ], + "label": { + "x": 1637, + "y": 5522, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_74", + "sourceTableName": "ums_admin_permission_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 490, + "y": 5490 + }, + { + "x": 495, + "y": 5490 + } + ], + "label": { + "x": 486, + "y": 5492, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_68", + "sourceTableName": "ums_permission", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 687, + "y": 5590 + }, + { + "x": 710, + "y": 5590 + }, + { + "x": 710, + "y": 5650 + }, + { + "x": 650, + "y": 5650 + }, + { + "x": 650, + "y": 5626 + } + ], + "label": { + "x": 677, + "y": 5542, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_85", + "sourceTableName": "ums_resource", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1100, + "y": 5005 + }, + { + "x": 1100, + "y": 4996 + } + ], + "label": { + "x": 1108, + "y": 5015, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_70", + "sourceTableName": "ums_admin_role_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1100, + "y": 5645 + }, + { + "x": 1100, + "y": 5586 + } + ], + "label": { + "x": 1108, + "y": 5655, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_81", + "sourceTableName": "ums_role_menu_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1205, + "y": 5490 + }, + { + "x": 1185, + "y": 5490 + } + ], + "label": { + "x": 1221, + "y": 5492, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_82", + "sourceTableName": "ums_role_menu_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1436, + "y": 5490 + }, + { + "x": 1455, + "y": 5490 + } + ], + "label": { + "x": 1432, + "y": 5492, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_71", + "sourceTableName": "ums_role_permission_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 965, + "y": 5490 + }, + { + "x": 975, + "y": 5490 + } + ], + "label": { + "x": 961, + "y": 5492, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_72", + "sourceTableName": "ums_role_permission_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 695, + "y": 5490 + }, + { + "x": 687, + "y": 5490 + } + ], + "label": { + "x": 711, + "y": 5492, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_83", + "sourceTableName": "ums_role_resource_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1100, + "y": 5356 + }, + { + "x": 1100, + "y": 5365 + } + ], + "label": { + "x": 1108, + "y": 5346, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_84", + "sourceTableName": "ums_role_resource_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1100, + "y": 5215 + }, + { + "x": 1100, + "y": 5206 + } + ], + "label": { + "x": 1108, + "y": 5225, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + } + ], + "viewRelations": [] + } + ] +} \ No newline at end of file diff --git "a/document/navicat/\344\274\232\345\221\230\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" "b/document/navicat/\344\274\232\345\221\230\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" new file mode 100644 index 00000000..ce4a0ba5 --- /dev/null +++ "b/document/navicat/\344\274\232\345\221\230\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" @@ -0,0 +1,8007 @@ +{ + "paper": { + "name": "A4", + "leftMargin": 0.5, + "rightMargin": 0.5, + "topMargin": 0.5, + "bottomMargin": 0.5, + "isPortriat": true + }, + "modelVersion": 2.01, + "defaultSchema": "Default", + "server": { + "objectType": "Server_MYSQL", + "name": "Default", + "serverVersion": 50799, + "edition": "Default", + "lowerCaseTableNames": 0, + "schemas": [ + { + "objectType": "Schema_MYSQL", + "name": "Default", + "tables": [], + "views": [] + }, + { + "objectType": "Schema_MYSQL", + "name": "mall-ref", + "tables": [ + { + "objectType": "Table_MYSQL", + "name": "ums_admin", + "comment": "后台用户表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `username` varchar(64) DEFAULT NULL COMMENT '用户名',\n `password` varchar(64) DEFAULT NULL COMMENT '密码',\n `icon` varchar(500) DEFAULT NULL COMMENT '头像',\n `email` varchar(100) DEFAULT NULL COMMENT '邮箱',\n `nick_name` varchar(200) DEFAULT NULL COMMENT '昵称',\n `note` varchar(500) DEFAULT NULL COMMENT '备注信息',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `login_time` datetime DEFAULT NULL COMMENT '最后登录时间',\n `status` int(1) DEFAULT '1' COMMENT '帐号启用状态:0->禁用;1->启用',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "username" + }, + { + "objectType": "TableField_MYSQL", + "name": "password", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "密码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "password" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "头像", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "email", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "邮箱", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "email" + }, + { + "objectType": "TableField_MYSQL", + "name": "nick_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注信息", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "login_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "最后登录时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "login_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "1", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "帐号启用状态:0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_login_log", + "comment": "后台用户登录日志表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_login_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_login_log` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `ip` varchar(64) DEFAULT NULL,\n `address` varchar(100) DEFAULT NULL,\n `user_agent` varchar(100) DEFAULT NULL COMMENT '浏览器登录类型',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_46` (`admin_id`),\n CONSTRAINT `FK_Reference_46` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户登录日志表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "ip", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "ip" + }, + { + "objectType": "TableField_MYSQL", + "name": "address", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "address" + }, + { + "objectType": "TableField_MYSQL", + "name": "user_agent", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "浏览器登录类型", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "user_agent" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_46", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_46", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_46", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_46" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_permission_relation", + "comment": "后台用户和权限关系表(除角色中定义的权限以外的加减权限)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_permission_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_permission_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `permission_id` bigint(20) DEFAULT NULL,\n `type` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_73` (`admin_id`),\n KEY `FK_Reference_74` (`permission_id`),\n CONSTRAINT `FK_Reference_73` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`),\n CONSTRAINT `FK_Reference_74` FOREIGN KEY (`permission_id`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户和权限关系表(除角色中定义的权限以外的加减权限)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "permission_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "permission_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_73", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_73", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_74", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_74", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "permission_id", + "keyLength": 0, + "order": "", + "oldName": "permission_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_73", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_73" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_74", + "fields": [ + "permission_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_74" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_role_relation", + "comment": "后台用户和角色关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_role_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_role_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `role_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_69` (`admin_id`),\n KEY `FK_Reference_70` (`role_id`),\n CONSTRAINT `FK_Reference_69` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`),\n CONSTRAINT `FK_Reference_70` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户和角色关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_69", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_69", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_70", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_70", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_69", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_69" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_70", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_70" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_growth_change_history", + "comment": "成长值变化历史记录表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_growth_change_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_growth_change_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `change_type` int(1) DEFAULT NULL COMMENT '改变类型:0->增加;1->减少',\n `change_count` int(11) DEFAULT NULL COMMENT '积分改变数量',\n `operate_man` varchar(100) DEFAULT NULL COMMENT '操作人员',\n `operate_note` varchar(200) DEFAULT NULL COMMENT '操作备注',\n `source_type` int(1) DEFAULT NULL COMMENT '积分来源:0->购物;1->管理员修改',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_56` (`member_id`),\n CONSTRAINT `FK_Reference_56` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='成长值变化历史记录表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "改变类型:0->增加;1->减少", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分改变数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_note" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分来源:0->购物;1->管理员修改", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_56", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_56", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_56", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_56" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_integration_change_history", + "comment": "积分变化历史记录表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_integration_change_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_integration_change_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `change_type` int(1) DEFAULT NULL COMMENT '改变类型:0->增加;1->减少',\n `change_count` int(11) DEFAULT NULL COMMENT '积分改变数量',\n `operate_man` varchar(100) DEFAULT NULL COMMENT '操作人员',\n `operate_note` varchar(200) DEFAULT NULL COMMENT '操作备注',\n `source_type` int(1) DEFAULT NULL COMMENT '积分来源:0->购物;1->管理员修改',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_55` (`member_id`),\n CONSTRAINT `FK_Reference_55` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='积分变化历史记录表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "改变类型:0->增加;1->减少", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分改变数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_note" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分来源:0->购物;1->管理员修改", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_55", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_55", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_55", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_55" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_integration_consume_setting", + "comment": "积分消费设置", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_integration_consume_setting", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_integration_consume_setting` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `deduction_per_amount` int(11) DEFAULT NULL COMMENT '每一元需要抵扣的积分数量',\n `max_percent_per_order` int(11) DEFAULT NULL COMMENT '每笔订单最高抵用百分比',\n `use_unit` int(11) DEFAULT NULL COMMENT '每次使用积分最小单位100',\n `coupon_status` int(1) DEFAULT NULL COMMENT '是否可以和优惠券同用;0->不可以;1->可以',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='积分消费设置'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "deduction_per_amount", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每一元需要抵扣的积分数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "deduction_per_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "max_percent_per_order", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每笔订单最高抵用百分比", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "max_percent_per_order" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_unit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每次使用积分最小单位100", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_unit" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否可以和优惠券同用;0->不可以;1->可以", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_status" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member", + "comment": "会员表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_level_id` bigint(20) DEFAULT NULL,\n `username` varchar(64) DEFAULT NULL COMMENT '用户名',\n `password` varchar(64) DEFAULT NULL COMMENT '密码',\n `nickname` varchar(64) DEFAULT NULL COMMENT '昵称',\n `phone` varchar(64) DEFAULT NULL COMMENT '手机号码',\n `status` int(1) DEFAULT NULL COMMENT '帐号启用状态:0->禁用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '注册时间',\n `icon` varchar(500) DEFAULT NULL COMMENT '头像',\n `gender` int(1) DEFAULT NULL COMMENT '性别:0->未知;1->男;2->女',\n `birthday` date DEFAULT NULL COMMENT '生日',\n `city` varchar(64) DEFAULT NULL COMMENT '所做城市',\n `job` varchar(100) DEFAULT NULL COMMENT '职业',\n `personalized_signature` varchar(200) DEFAULT NULL COMMENT '个性签名',\n `source_type` int(1) DEFAULT NULL COMMENT '用户来源',\n `integration` int(11) DEFAULT NULL COMMENT '积分',\n `growth` int(11) DEFAULT NULL COMMENT '成长值',\n `luckey_count` int(11) DEFAULT NULL COMMENT '剩余抽奖次数',\n `history_integration` int(11) DEFAULT NULL COMMENT '历史积分数量',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_47` (`member_level_id`),\n CONSTRAINT `FK_Reference_47` FOREIGN KEY (`member_level_id`) REFERENCES `ums_member_level` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_level_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_level_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "username" + }, + { + "objectType": "TableField_MYSQL", + "name": "password", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "密码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "password" + }, + { + "objectType": "TableField_MYSQL", + "name": "nickname", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "nickname" + }, + { + "objectType": "TableField_MYSQL", + "name": "phone", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "手机号码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "帐号启用状态:0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "注册时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "头像", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "gender", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "性别:0->未知;1->男;2->女", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gender" + }, + { + "objectType": "TableField_MYSQL", + "name": "birthday", + "type": "date", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "生日", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "birthday" + }, + { + "objectType": "TableField_MYSQL", + "name": "city", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "所做城市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "city" + }, + { + "objectType": "TableField_MYSQL", + "name": "job", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "职业", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "job" + }, + { + "objectType": "TableField_MYSQL", + "name": "personalized_signature", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "个性签名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "personalized_signature" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户来源", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "integration" + }, + { + "objectType": "TableField_MYSQL", + "name": "growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "luckey_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "剩余抽奖次数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "luckey_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "history_integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "历史积分数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "history_integration" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_47", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_47", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_level_id", + "keyLength": 0, + "order": "", + "oldName": "member_level_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_47", + "fields": [ + "member_level_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member_level", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_47" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_level", + "comment": "会员等级表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_level", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_level` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `growth_point` int(11) DEFAULT NULL,\n `default_status` int(1) DEFAULT NULL COMMENT '是否为默认等级:0->不是;1->是',\n `free_freight_point` decimal(10,2) DEFAULT NULL COMMENT '免运费标准',\n `comment_growth_point` int(11) DEFAULT NULL COMMENT '每次评价获取的成长值',\n `priviledge_free_freight` int(1) DEFAULT NULL COMMENT '是否有免邮特权',\n `priviledge_sign_in` int(1) DEFAULT NULL COMMENT '是否有签到特权',\n `priviledge_comment` int(1) DEFAULT NULL COMMENT '是否有评论获奖励特权',\n `priviledge_promotion` int(1) DEFAULT NULL COMMENT '是否有专享活动特权',\n `priviledge_member_price` int(1) DEFAULT NULL COMMENT '是否有会员价格特权',\n `priviledge_birthday` int(1) DEFAULT NULL COMMENT '是否有生日特权',\n `note` varchar(200) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员等级表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "growth_point", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "growth_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "default_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否为默认等级:0->不是;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "default_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "free_freight_point", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "免运费标准", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "free_freight_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_growth_point", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每次评价获取的成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_growth_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_free_freight", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有免邮特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_free_freight" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_sign_in", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有签到特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_sign_in" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_comment", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有评论获奖励特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_comment" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_promotion", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有专享活动特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_promotion" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_member_price", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有会员价格特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_member_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "priviledge_birthday", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否有生日特权", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "priviledge_birthday" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_login_log", + "comment": "会员登录记录", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_login_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_login_log` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `ip` varchar(64) DEFAULT NULL,\n `city` varchar(64) DEFAULT NULL,\n `login_type` int(1) DEFAULT NULL COMMENT '登录类型:0->PC;1->android;2->ios;3->小程序',\n `province` varchar(64) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_52` (`member_id`),\n CONSTRAINT `FK_Reference_52` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员登录记录'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "ip", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "ip" + }, + { + "objectType": "TableField_MYSQL", + "name": "city", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "city" + }, + { + "objectType": "TableField_MYSQL", + "name": "login_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "登录类型:0->PC;1->android;2->ios;3->小程序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "login_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "province", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "province" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_52", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_52", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_52", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_52" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_member_tag_relation", + "comment": "用户和标签关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_member_tag_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_member_tag_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `tag_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_53` (`member_id`),\n KEY `FK_Reference_54` (`tag_id`),\n CONSTRAINT `FK_Reference_53` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_54` FOREIGN KEY (`tag_id`) REFERENCES `ums_member_tag` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户和标签关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "tag_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "tag_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_53", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_53", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_54", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_54", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "tag_id", + "keyLength": 0, + "order": "", + "oldName": "tag_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_53", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_53" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_54", + "fields": [ + "tag_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member_tag", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_54" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_product_category_relation", + "comment": "会员与产品分类关系表(用户喜欢的分类)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_product_category_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_product_category_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `product_category_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_48` (`member_id`),\n KEY `FK_Reference_49` (`product_category_id`),\n CONSTRAINT `FK_Reference_48` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_49` FOREIGN KEY (`product_category_id`) REFERENCES `pms_product_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员与产品分类关系表(用户喜欢的分类)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_48", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_48", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_49", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_49", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_48", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_48" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_49", + "fields": [ + "product_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_49" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_receive_address", + "comment": "会员收货地址表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_receive_address", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_receive_address` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `name` varchar(100) DEFAULT NULL COMMENT '收货人名称',\n `phone_number` varchar(64) DEFAULT NULL,\n `default_status` int(1) DEFAULT NULL COMMENT '是否为默认',\n `post_code` varchar(100) DEFAULT NULL COMMENT '邮政编码',\n `province` varchar(100) DEFAULT NULL COMMENT '省份/直辖市',\n `city` varchar(100) DEFAULT NULL COMMENT '城市',\n `region` varchar(100) DEFAULT NULL COMMENT '区',\n `detail_address` varchar(128) DEFAULT NULL COMMENT '详细地址(街道)',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_51` (`member_id`),\n CONSTRAINT `FK_Reference_51` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员收货地址表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "phone_number", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "phone_number" + }, + { + "objectType": "TableField_MYSQL", + "name": "default_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否为默认", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "default_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "post_code", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "邮政编码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "post_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "province", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "省份/直辖市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "province" + }, + { + "objectType": "TableField_MYSQL", + "name": "city", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "城市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "city" + }, + { + "objectType": "TableField_MYSQL", + "name": "region", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "区", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "region" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_address", + "type": "varchar", + "length": 128, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "详细地址(街道)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_address" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_51", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_51", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_51", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_51" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_rule_setting", + "comment": "会员积分成长规则表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_rule_setting", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_rule_setting` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `continue_sign_day` int(11) DEFAULT NULL COMMENT '连续签到天数',\n `continue_sign_point` int(11) DEFAULT NULL COMMENT '连续签到赠送数量',\n `consume_per_point` decimal(10,2) DEFAULT NULL COMMENT '每消费多少元获取1个点',\n `low_order_amount` decimal(10,2) DEFAULT NULL COMMENT '最低获取点数的订单金额',\n `max_point_per_order` int(11) DEFAULT NULL COMMENT '每笔订单最高获取点数',\n `type` int(1) DEFAULT NULL COMMENT '类型:0->积分规则;1->成长值规则',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员积分成长规则表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "continue_sign_day", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "连续签到天数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "continue_sign_day" + }, + { + "objectType": "TableField_MYSQL", + "name": "continue_sign_point", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "连续签到赠送数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "continue_sign_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "consume_per_point", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每消费多少元获取1个点", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "consume_per_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "low_order_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "最低获取点数的订单金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "low_order_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "max_point_per_order", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每笔订单最高获取点数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "max_point_per_order" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "类型:0->积分规则;1->成长值规则", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_statistics_info", + "comment": "会员统计信息", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_statistics_info", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_statistics_info` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `consume_amount` decimal(10,2) DEFAULT NULL COMMENT '累计消费金额',\n `order_count` int(11) DEFAULT NULL COMMENT '订单数量',\n `coupon_count` int(11) DEFAULT NULL COMMENT '优惠券数量',\n `comment_count` int(11) DEFAULT NULL COMMENT '评价数',\n `return_order_count` int(11) DEFAULT NULL COMMENT '退货数量',\n `login_count` int(11) DEFAULT NULL COMMENT '登录次数',\n `attend_count` int(11) DEFAULT NULL COMMENT '关注数量',\n `fans_count` int(11) DEFAULT NULL COMMENT '粉丝数量',\n `collect_product_count` int(11) DEFAULT NULL,\n `collect_subject_count` int(11) DEFAULT NULL,\n `collect_topic_count` int(11) DEFAULT NULL,\n `collect_comment_count` int(11) DEFAULT NULL,\n `invite_friend_count` int(11) DEFAULT NULL,\n `recent_order_time` datetime DEFAULT NULL COMMENT '最后一次下订单时间',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_50` (`member_id`),\n CONSTRAINT `FK_Reference_50` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员统计信息'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "consume_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "累计消费金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "consume_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠券数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评价数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "return_order_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "return_order_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "login_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "登录次数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "login_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "attend_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "关注数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "attend_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "fans_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "粉丝数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "fans_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_subject_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_subject_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_topic_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_topic_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_comment_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_comment_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "invite_friend_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "invite_friend_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "recent_order_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "最后一次下订单时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recent_order_time" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_50", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_50", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_50", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_50" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_tag", + "comment": "用户标签表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_tag", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_tag` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `finish_order_count` int(11) DEFAULT NULL COMMENT '自动打标签完成订单数量',\n `finish_order_amount` decimal(10,2) DEFAULT NULL COMMENT '自动打标签完成订单金额',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户标签表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "finish_order_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "自动打标签完成订单数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "finish_order_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "finish_order_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "自动打标签完成订单金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "finish_order_amount" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_member_task", + "comment": "会员任务表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_member_task", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_member_task` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `growth` int(11) DEFAULT NULL COMMENT '赠送成长值',\n `intergration` int(11) DEFAULT NULL COMMENT '赠送积分',\n `type` int(1) DEFAULT NULL COMMENT '任务类型:0->新手任务;1->日常任务',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员任务表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "intergration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "intergration" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "任务类型:0->新手任务;1->日常任务", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_menu", + "comment": "后台菜单表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_menu", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_menu` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `parent_id` bigint(20) DEFAULT NULL COMMENT '父级ID',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `title` varchar(100) DEFAULT NULL COMMENT '菜单名称',\n `level` int(4) DEFAULT NULL COMMENT '菜单级数',\n `sort` int(4) DEFAULT NULL COMMENT '菜单排序',\n `name` varchar(100) DEFAULT NULL COMMENT '前端名称',\n `icon` varchar(200) DEFAULT NULL COMMENT '前端图标',\n `hidden` int(1) DEFAULT NULL COMMENT '前端隐藏',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_80` (`parent_id`),\n CONSTRAINT `FK_Reference_80` FOREIGN KEY (`parent_id`) REFERENCES `ums_menu` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台菜单表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "parent_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "父级ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "parent_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "title", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "title" + }, + { + "objectType": "TableField_MYSQL", + "name": "level", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单级数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "level" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "hidden", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端隐藏", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "hidden" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_80", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_80", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "parent_id", + "keyLength": 0, + "order": "", + "oldName": "parent_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_80", + "fields": [ + "parent_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_menu", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_80" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_permission", + "comment": "后台用户权限表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_permission", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_permission` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `pid` bigint(20) DEFAULT NULL COMMENT '父级权限id',\n `name` varchar(100) DEFAULT NULL COMMENT '名称',\n `value` varchar(200) DEFAULT NULL COMMENT '权限值',\n `icon` varchar(500) DEFAULT NULL COMMENT '图标',\n `type` int(1) DEFAULT NULL COMMENT '权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)',\n `uri` varchar(200) DEFAULT NULL COMMENT '前端资源路径',\n `status` int(1) DEFAULT NULL COMMENT '启用状态;0->禁用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `sort` int(11) DEFAULT NULL COMMENT '排序',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_68` (`pid`),\n CONSTRAINT `FK_Reference_68` FOREIGN KEY (`pid`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户权限表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "pid", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "父级权限id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pid" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "value", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "权限值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "value" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + }, + { + "objectType": "TableField_MYSQL", + "name": "uri", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端资源路径", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "uri" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "启用状态;0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_68", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_68", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "pid", + "keyLength": 0, + "order": "", + "oldName": "pid" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_68", + "fields": [ + "pid" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_68" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_resource", + "comment": "后台资源表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_resource", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_resource` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `category_id` bigint(20) DEFAULT NULL COMMENT '资源分类ID',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `name` varchar(200) DEFAULT NULL COMMENT '资源名称',\n `url` varchar(200) DEFAULT NULL COMMENT '资源URL',\n `description` varchar(500) DEFAULT NULL COMMENT '描述',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_85` (`category_id`),\n CONSTRAINT `FK_Reference_85` FOREIGN KEY (`category_id`) REFERENCES `ums_resource_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台资源表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源分类ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "url", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源URL", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "url" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_85", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_85", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "category_id", + "keyLength": 0, + "order": "", + "oldName": "category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_85", + "fields": [ + "category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_resource_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_85" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_resource_category", + "comment": "资源分类表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_resource_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_resource_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `name` varchar(200) DEFAULT NULL COMMENT '分类名称',\n `sort` int(4) DEFAULT NULL COMMENT '排序',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='资源分类表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role", + "comment": "后台用户角色表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL COMMENT '名称',\n `description` varchar(500) DEFAULT NULL COMMENT '描述',\n `admin_count` int(11) DEFAULT NULL COMMENT '后台用户数量',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `status` int(1) DEFAULT '1' COMMENT '启用状态:0->禁用;1->启用',\n `sort` int(11) DEFAULT '0',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户角色表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "后台用户数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "1", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "启用状态:0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_menu_relation", + "comment": "后台角色菜单关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_menu_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_menu_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',\n `menu_id` bigint(20) DEFAULT NULL COMMENT '菜单ID',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_81` (`role_id`),\n KEY `FK_Reference_82` (`menu_id`),\n CONSTRAINT `FK_Reference_81` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_82` FOREIGN KEY (`menu_id`) REFERENCES `ums_menu` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台角色菜单关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "角色ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "menu_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "menu_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_81", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_81", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_82", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_82", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "menu_id", + "keyLength": 0, + "order": "", + "oldName": "menu_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_81", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_81" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_82", + "fields": [ + "menu_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_menu", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_82" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_permission_relation", + "comment": "后台用户角色和权限关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_permission_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_permission_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL,\n `permission_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_71` (`role_id`),\n KEY `FK_Reference_72` (`permission_id`),\n CONSTRAINT `FK_Reference_71` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_72` FOREIGN KEY (`permission_id`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户角色和权限关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "permission_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "permission_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_71", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_71", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_72", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_72", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "permission_id", + "keyLength": 0, + "order": "", + "oldName": "permission_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_71", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_71" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_72", + "fields": [ + "permission_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_72" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_resource_relation", + "comment": "后台角色资源关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_resource_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_resource_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',\n `resource_id` bigint(20) DEFAULT NULL COMMENT '资源ID',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_83` (`role_id`),\n KEY `FK_Reference_84` (`resource_id`),\n CONSTRAINT `FK_Reference_83` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_84` FOREIGN KEY (`resource_id`) REFERENCES `ums_resource` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台角色资源关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "角色ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "resource_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "resource_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_83", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_83", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_84", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_84", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "resource_id", + "keyLength": 0, + "order": "", + "oldName": "resource_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_83", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_83" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_84", + "fields": [ + "resource_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_resource", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_84" + } + ], + "triggers": [], + "tablePartitions": [] + } + ], + "views": [] + } + ] + }, + "diagrams": [ + { + "name": "会员模块数据库模型", + "paperWidth": 3, + "paperHeight": 1, + "tableFont": "Arial Unicode MS", + "tableFontSize": 14, + "isBalckWhite": false, + "showDBSchemaName": false, + "showViewRelations": true, + "notation": "default", + "showFieldComment": false, + "showTableComment": false, + "shapes": [ + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_growth_change_history", + "x": 280, + "y": 450, + "width": 230, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_integration_change_history", + "x": 10, + "y": 340, + "width": 259, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_integration_consume_setting", + "x": 310, + "y": 790, + "width": 270, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member", + "x": 610, + "y": 290, + "width": 248, + "height": 431, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_level", + "x": 40, + "y": 0, + "width": 223, + "height": 311, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_login_log", + "x": 30, + "y": 580, + "width": 193, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_member_tag_relation", + "x": 940, + "y": 380, + "width": 279, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_product_category_relation", + "x": 890, + "y": 40, + "width": 317, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_receive_address", + "x": 570, + "y": 10, + "width": 247, + "height": 251, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_rule_setting", + "x": 50, + "y": 790, + "width": 237, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_statistics_info", + "x": 310, + "y": 10, + "width": 228, + "height": 371, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_tag", + "x": 930, + "y": 540, + "width": 241, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_member_task", + "x": 620, + "y": 790, + "width": 158, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + } + ], + "layers": [], + "relations": [ + { + "name": "FK_Reference_56", + "sourceTableName": "ums_growth_change_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 525, + "y": 520 + }, + { + "x": 595, + "y": 520 + } + ], + "label": { + "x": 280, + "y": 20, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_55", + "sourceTableName": "ums_integration_change_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 284, + "y": 430 + }, + { + "x": 595, + "y": 430 + } + ], + "label": { + "x": 152, + "y": 140, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_47", + "sourceTableName": "ums_member", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 595, + "y": 510 + }, + { + "x": 560, + "y": 510 + }, + { + "x": 560, + "y": 240 + }, + { + "x": 278, + "y": 240 + } + ], + "label": { + "x": 610, + "y": 170, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_52", + "sourceTableName": "ums_member_login_log", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 238, + "y": 690 + }, + { + "x": 595, + "y": 690 + } + ], + "label": { + "x": 233, + "y": 187, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_53", + "sourceTableName": "ums_member_member_tag_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 925, + "y": 440 + }, + { + "x": 873, + "y": 440 + } + ], + "label": { + "x": 940, + "y": 100, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_48", + "sourceTableName": "ums_member_product_category_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1070, + "y": 166 + }, + { + "x": 1070, + "y": 340 + }, + { + "x": 873, + "y": 340 + } + ], + "label": { + "x": 750, + "y": 40, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_51", + "sourceTableName": "ums_member_receive_address", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 640, + "y": 276 + }, + { + "x": 640, + "y": 275 + } + ], + "label": { + "x": 520, + "y": 84, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_50", + "sourceTableName": "ums_member_statistics_info", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 553, + "y": 310 + }, + { + "x": 595, + "y": 310 + } + ], + "label": { + "x": 431, + "y": 10, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_54", + "sourceTableName": "ums_member_member_tag_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1060, + "y": 506 + }, + { + "x": 1060, + "y": 525 + }, + { + "x": 1060, + "y": 525 + }, + { + "x": 1060, + "y": 525 + } + ], + "label": { + "x": 778, + "y": 154, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + } + ], + "viewRelations": [] + } + ] +} \ No newline at end of file diff --git "a/document/navicat/\345\225\206\345\223\201\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" "b/document/navicat/\345\225\206\345\223\201\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" new file mode 100644 index 00000000..e290d35a --- /dev/null +++ "b/document/navicat/\345\225\206\345\223\201\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" @@ -0,0 +1,7697 @@ +{ + "paper": { + "name": "A4", + "leftMargin": 0.5, + "rightMargin": 0.5, + "topMargin": 0.5, + "bottomMargin": 0.5, + "isPortriat": true + }, + "modelVersion": 2.01, + "defaultSchema": "Default", + "server": { + "objectType": "Server_MYSQL", + "name": "Default", + "serverVersion": 50799, + "edition": "Default", + "lowerCaseTableNames": 0, + "schemas": [ + { + "objectType": "Schema_MYSQL", + "name": "Default", + "tables": [], + "views": [] + }, + { + "objectType": "Schema_MYSQL", + "name": "mall-ref", + "tables": [ + { + "objectType": "Table_MYSQL", + "name": "pms_album", + "comment": "相册表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_album", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_album` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(64) DEFAULT NULL,\n `cover_pic` varchar(1000) DEFAULT NULL,\n `pic_count` int(11) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n `description` varchar(1000) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='相册表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "cover_pic", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "cover_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_album_pic", + "comment": "画册图片表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_album_pic", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_album_pic` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `album_id` bigint(20) DEFAULT NULL,\n `pic` varchar(1000) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_25` (`album_id`),\n CONSTRAINT `FK_Reference_25` FOREIGN KEY (`album_id`) REFERENCES `pms_album` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='画册图片表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "album_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "album_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_25", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_25", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "album_id", + "keyLength": 0, + "order": "", + "oldName": "album_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_25", + "fields": [ + "album_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_album", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_25" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_brand", + "comment": "品牌表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_brand", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_brand` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(64) DEFAULT NULL,\n `first_letter` varchar(8) DEFAULT NULL COMMENT '首字母',\n `sort` int(11) DEFAULT NULL,\n `factory_status` int(1) DEFAULT NULL COMMENT '是否为品牌制造商:0->不是;1->是',\n `show_status` int(1) DEFAULT NULL,\n `product_count` int(11) DEFAULT NULL COMMENT '产品数量',\n `product_comment_count` int(11) DEFAULT NULL COMMENT '产品评论数量',\n `logo` varchar(255) DEFAULT NULL COMMENT '品牌logo',\n `big_pic` varchar(255) DEFAULT NULL COMMENT '专区大图',\n `brand_story` text COMMENT '品牌故事',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='品牌表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "first_letter", + "type": "varchar", + "length": 8, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "首字母", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "first_letter" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "factory_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否为品牌制造商:0->不是;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "factory_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_comment_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品评论数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_comment_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "logo", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "品牌logo", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "logo" + }, + { + "objectType": "TableField_MYSQL", + "name": "big_pic", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "专区大图", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "big_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_story", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "品牌故事", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_story" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_comment", + "comment": "商品评价表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_comment", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_comment` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `member_nick_name` varchar(255) DEFAULT NULL,\n `product_name` varchar(255) DEFAULT NULL,\n `star` int(3) DEFAULT NULL COMMENT '评价星数:0->5',\n `member_ip` varchar(64) DEFAULT NULL COMMENT '评价的ip',\n `create_time` datetime DEFAULT NULL,\n `show_status` int(1) DEFAULT NULL,\n `product_attribute` varchar(255) DEFAULT NULL COMMENT '购买时的商品属性',\n `collect_couont` int(11) DEFAULT NULL,\n `read_count` int(11) DEFAULT NULL,\n `content` text,\n `pics` varchar(1000) DEFAULT NULL COMMENT '上传图片地址,以逗号隔开',\n `member_icon` varchar(255) DEFAULT NULL COMMENT '评论用户头像',\n `replay_count` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_23` (`product_id`),\n CONSTRAINT `FK_Reference_23` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品评价表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nick_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "star", + "type": "int", + "length": 3, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评价星数:0->5", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "star" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_ip", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评价的ip", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_ip" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "购买时的商品属性", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute" + }, + { + "objectType": "TableField_MYSQL", + "name": "collect_couont", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "collect_couont" + }, + { + "objectType": "TableField_MYSQL", + "name": "read_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "read_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + }, + { + "objectType": "TableField_MYSQL", + "name": "pics", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上传图片地址,以逗号隔开", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pics" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_icon", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评论用户头像", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "replay_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "replay_count" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_23", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_23", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_23", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_23" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_comment_replay", + "comment": "产品评价回复表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_comment_replay", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_comment_replay` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `comment_id` bigint(20) DEFAULT NULL,\n `member_nick_name` varchar(255) DEFAULT NULL,\n `member_icon` varchar(255) DEFAULT NULL,\n `content` varchar(1000) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `type` int(1) DEFAULT NULL COMMENT '评论人员类型;0->会员;1->管理员',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_24` (`comment_id`),\n CONSTRAINT `FK_Reference_24` FOREIGN KEY (`comment_id`) REFERENCES `pms_comment` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品评价回复表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nick_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_icon", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "content", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "content" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评论人员类型;0->会员;1->管理员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_24", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_24", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "comment_id", + "keyLength": 0, + "order": "", + "oldName": "comment_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_24", + "fields": [ + "comment_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_comment", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_24" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_feight_template", + "comment": "运费模版", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_feight_template", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_feight_template` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(64) DEFAULT NULL,\n `charge_type` int(1) DEFAULT NULL COMMENT '计费类型:0->按重量;1->按件数',\n `first_weight` decimal(10,2) DEFAULT NULL COMMENT '首重kg',\n `first_fee` decimal(10,2) DEFAULT NULL COMMENT '首费(元)',\n `continue_weight` decimal(10,2) DEFAULT NULL,\n `continme_fee` decimal(10,2) DEFAULT NULL,\n `dest` varchar(255) DEFAULT NULL COMMENT '目的地(省、市)',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='运费模版'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "charge_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "计费类型:0->按重量;1->按件数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "charge_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "first_weight", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "首重kg", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "first_weight" + }, + { + "objectType": "TableField_MYSQL", + "name": "first_fee", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "首费(元)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "first_fee" + }, + { + "objectType": "TableField_MYSQL", + "name": "continue_weight", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "continue_weight" + }, + { + "objectType": "TableField_MYSQL", + "name": "continme_fee", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "continme_fee" + }, + { + "objectType": "TableField_MYSQL", + "name": "dest", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "目的地(省、市)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "dest" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_member_price", + "comment": "商品会员价格表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_member_price", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_member_price` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `member_level_id` bigint(20) DEFAULT NULL,\n `member_price` decimal(10,2) DEFAULT NULL COMMENT '会员价格',\n `member_level_name` varchar(100) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_60` (`member_level_id`),\n KEY `FK_Reference_9` (`product_id`),\n CONSTRAINT `FK_Reference_60` FOREIGN KEY (`member_level_id`) REFERENCES `ums_member_level` (`id`),\n CONSTRAINT `FK_Reference_9` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品会员价格表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_level_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_level_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "会员价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_level_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_level_name" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_60", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_60", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_level_id", + "keyLength": 0, + "order": "", + "oldName": "member_level_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_9", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_9", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_60", + "fields": [ + "member_level_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member_level", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_60" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_9", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_9" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_attribute", + "comment": "商品属性参数表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_attribute", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_attribute` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_attribute_category_id` bigint(20) DEFAULT NULL,\n `name` varchar(64) DEFAULT NULL,\n `select_type` int(1) DEFAULT NULL COMMENT '属性选择类型:0->唯一;1->单选;2->多选;对应属性和参数意义不同;',\n `input_type` int(1) DEFAULT NULL COMMENT '属性录入方式:0->手工录入;1->从列表中选取',\n `input_list` varchar(255) DEFAULT NULL COMMENT '可选值列表,以逗号隔开',\n `sort` int(11) DEFAULT NULL COMMENT '排序字段:最高的可以单独上传图片',\n `filter_type` int(1) DEFAULT NULL COMMENT '分类筛选样式:1->普通;1->颜色',\n `search_type` int(1) DEFAULT NULL COMMENT '检索类型;0->不需要进行检索;1->关键字检索;2->范围检索',\n `related_status` int(1) DEFAULT NULL COMMENT '相同属性产品是否关联;0->不关联;1->关联',\n `hand_add_status` int(1) DEFAULT NULL COMMENT '是否支持手动新增;0->不支持;1->支持',\n `type` int(1) DEFAULT NULL COMMENT '属性的类型;0->规格;1->参数',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_12` (`product_attribute_category_id`),\n CONSTRAINT `FK_Reference_12` FOREIGN KEY (`product_attribute_category_id`) REFERENCES `pms_product_attribute_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品属性参数表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "select_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "属性选择类型:0->唯一;1->单选;2->多选;对应属性和参数意义不同;", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "select_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "input_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "属性录入方式:0->手工录入;1->从列表中选取", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "input_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "input_list", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可选值列表,以逗号隔开", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "input_list" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序字段:最高的可以单独上传图片", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "filter_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类筛选样式:1->普通;1->颜色", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "filter_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "search_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "检索类型;0->不需要进行检索;1->关键字检索;2->范围检索", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "search_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "related_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "相同属性产品是否关联;0->不关联;1->关联", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "related_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "hand_add_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否支持手动新增;0->不支持;1->支持", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "hand_add_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "属性的类型;0->规格;1->参数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_12", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_12", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_attribute_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_attribute_category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_12", + "fields": [ + "product_attribute_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_attribute_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_12" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_attribute_category", + "comment": "产品属性分类表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_attribute_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_attribute_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(64) DEFAULT NULL,\n `attribute_count` int(11) DEFAULT NULL COMMENT '属性数量',\n `param_count` int(11) DEFAULT NULL COMMENT '参数数量',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品属性分类表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "attribute_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "属性数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "attribute_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "param_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "参数数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "param_count" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_attribute_value", + "comment": "存储产品参数信息的表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_attribute_value", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_attribute_value` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `product_attribute_id` bigint(20) DEFAULT NULL,\n `value` varchar(64) DEFAULT NULL COMMENT '手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_14` (`product_id`),\n KEY `FK_Reference_15` (`product_attribute_id`),\n CONSTRAINT `FK_Reference_14` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`),\n CONSTRAINT `FK_Reference_15` FOREIGN KEY (`product_attribute_id`) REFERENCES `pms_product_attribute` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='存储产品参数信息的表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "value", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "value" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_14", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_14", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_15", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_15", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_attribute_id", + "keyLength": 0, + "order": "", + "oldName": "product_attribute_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_14", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_14" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_15", + "fields": [ + "product_attribute_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_attribute", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_15" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_category", + "comment": "产品分类", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `parent_id` bigint(20) DEFAULT NULL COMMENT '上机分类的编号:0表示一级分类',\n `name` varchar(64) DEFAULT NULL,\n `level` int(1) DEFAULT NULL COMMENT '分类级别:0->1级;1->2级',\n `product_count` int(11) DEFAULT NULL,\n `product_unit` varchar(64) DEFAULT NULL,\n `nav_status` int(1) DEFAULT NULL COMMENT '是否显示在导航栏:0->不显示;1->显示',\n `show_status` int(1) DEFAULT NULL COMMENT '显示状态:0->不显示;1->显示',\n `sort` int(11) DEFAULT NULL,\n `icon` varchar(255) DEFAULT NULL COMMENT '图标',\n `keywords` varchar(255) DEFAULT NULL,\n `description` text COMMENT '描述',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_20` (`parent_id`),\n CONSTRAINT `FK_Reference_20` FOREIGN KEY (`parent_id`) REFERENCES `pms_product_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品分类'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "parent_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上机分类的编号:0表示一级分类", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "parent_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "level", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类级别:0->1级;1->2级", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "level" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_unit", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_unit" + }, + { + "objectType": "TableField_MYSQL", + "name": "nav_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否显示在导航栏:0->不显示;1->显示", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "nav_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "show_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "显示状态:0->不显示;1->显示", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "show_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "keywords", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "keywords" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_20", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_20", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "parent_id", + "keyLength": 0, + "order": "", + "oldName": "parent_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_20", + "fields": [ + "parent_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_20" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_category_attribute_relation", + "comment": "产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_category_attribute_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_category_attribute_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_category_id` bigint(20) DEFAULT NULL,\n `product_attribute_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_21` (`product_category_id`),\n KEY `FK_Reference_22` (`product_attribute_id`),\n CONSTRAINT `FK_Reference_21` FOREIGN KEY (`product_category_id`) REFERENCES `pms_product_category` (`id`),\n CONSTRAINT `FK_Reference_22` FOREIGN KEY (`product_attribute_id`) REFERENCES `pms_product_attribute` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_21", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_21", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_category_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_22", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_22", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_attribute_id", + "keyLength": 0, + "order": "", + "oldName": "product_attribute_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_21", + "fields": [ + "product_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_21" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_22", + "fields": [ + "product_attribute_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_attribute", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_22" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_full_reduction", + "comment": "产品满减表(只针对同商品)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_full_reduction", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_full_reduction` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `full_price` decimal(10,2) DEFAULT NULL,\n `reduce_price` decimal(10,2) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_11` (`product_id`),\n CONSTRAINT `FK_Reference_11` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品满减表(只针对同商品)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "full_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "full_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "reduce_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "reduce_price" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_11", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_11", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_11", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_11" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_ladder", + "comment": "产品阶梯价格表(只针对同商品)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_ladder", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_ladder` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `count` int(11) DEFAULT NULL COMMENT '满足的商品数量',\n `discount` decimal(10,2) DEFAULT NULL COMMENT '折扣',\n `price` decimal(10,2) DEFAULT NULL COMMENT '折后价格',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_10` (`product_id`),\n CONSTRAINT `FK_Reference_10` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品阶梯价格表(只针对同商品)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "满足的商品数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "count" + }, + { + "objectType": "TableField_MYSQL", + "name": "discount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "折扣", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "discount" + }, + { + "objectType": "TableField_MYSQL", + "name": "price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "折后价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_10", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_10", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_10", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_10" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_operate_log", + "comment": "", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_operate_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:55", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_operate_log` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `price_old` decimal(10,2) DEFAULT NULL,\n `price_new` decimal(10,2) DEFAULT NULL,\n `sale_price_old` decimal(10,2) DEFAULT NULL,\n `sale_price_new` decimal(10,2) DEFAULT NULL,\n `gift_point_old` int(11) DEFAULT NULL COMMENT '赠送的积分',\n `gift_point_new` int(11) DEFAULT NULL,\n `use_point_limit_old` int(11) DEFAULT NULL,\n `use_point_limit_new` int(11) DEFAULT NULL,\n `operate_man` varchar(64) DEFAULT NULL COMMENT '操作人',\n `create_time` datetime DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_4` (`product_id`),\n CONSTRAINT `FK_Reference_4` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "price_old", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price_old" + }, + { + "objectType": "TableField_MYSQL", + "name": "price_new", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price_new" + }, + { + "objectType": "TableField_MYSQL", + "name": "sale_price_old", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sale_price_old" + }, + { + "objectType": "TableField_MYSQL", + "name": "sale_price_new", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sale_price_new" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_point_old", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送的积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_point_old" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_point_new", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_point_new" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_point_limit_old", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_point_limit_old" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_point_limit_new", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_point_limit_new" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_4", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_4", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_4", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_4" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product_vertify_record", + "comment": "商品审核记录", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product_vertify_record", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product_vertify_record` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `vertify_man` varchar(64) DEFAULT NULL COMMENT '审核人',\n `status` int(1) DEFAULT NULL COMMENT '审核后的状态:0->未通过;2->已通过',\n `detail` varchar(255) DEFAULT NULL COMMENT '反馈详情',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_3` (`product_id`),\n CONSTRAINT `FK_Reference_3` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品审核记录'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "vertify_man", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "审核人", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "vertify_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "审核后的状态:0->未通过;2->已通过", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "反馈详情", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_3", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_3", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_3", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_3" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_sku_stock", + "comment": "sku的库存", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_sku_stock", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_sku_stock` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `sku_code` varchar(64) NOT NULL COMMENT 'sku编码',\n `price` decimal(10,2) DEFAULT NULL,\n `stock` int(11) DEFAULT '0' COMMENT '库存',\n `low_stock` int(11) DEFAULT NULL COMMENT '预警库存',\n `pic` varchar(255) DEFAULT NULL COMMENT '展示图片',\n `sale` int(11) DEFAULT NULL COMMENT '销量',\n `promotion_price` decimal(10,2) DEFAULT NULL COMMENT '单品促销价格',\n `lock_stock` int(11) DEFAULT '0' COMMENT '锁定库存',\n `sp_data` varchar(500) DEFAULT NULL COMMENT '商品销售属性,json格式',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_2` (`product_id`),\n CONSTRAINT `FK_Reference_2` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sku的库存'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "sku_code", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "sku编码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sku_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price" + }, + { + "objectType": "TableField_MYSQL", + "name": "stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "库存", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "low_stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "预警库存", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "low_stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "展示图片", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "sale", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "销量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sale" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "单品促销价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "lock_stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "锁定库存", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "lock_stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "sp_data", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品销售属性,json格式", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sp_data" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_2", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_2", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_2", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_2" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "pms_product", + "comment": "商品信息", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "pms_product", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 65536, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `pms_product` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `brand_id` bigint(20) DEFAULT NULL,\n `product_category_id` bigint(20) DEFAULT NULL,\n `feight_template_id` bigint(20) DEFAULT NULL,\n `product_attribute_category_id` bigint(20) DEFAULT NULL,\n `name` varchar(64) NOT NULL,\n `pic` varchar(255) DEFAULT NULL,\n `product_sn` varchar(64) NOT NULL COMMENT '货号',\n `delete_status` int(1) DEFAULT NULL COMMENT '删除状态:0->未删除;1->已删除',\n `publish_status` int(1) DEFAULT NULL COMMENT '上架状态:0->下架;1->上架',\n `new_status` int(1) DEFAULT NULL COMMENT '新品状态:0->不是新品;1->新品',\n `recommand_status` int(1) DEFAULT NULL COMMENT '推荐状态;0->不推荐;1->推荐',\n `verify_status` int(1) DEFAULT NULL COMMENT '审核状态:0->未审核;1->审核通过',\n `sort` int(11) DEFAULT NULL COMMENT '排序',\n `sale` int(11) DEFAULT NULL COMMENT '销量',\n `price` decimal(10,2) DEFAULT NULL,\n `promotion_price` decimal(10,2) DEFAULT NULL COMMENT '促销价格',\n `gift_growth` int(11) DEFAULT '0' COMMENT '赠送的成长值',\n `gift_point` int(11) DEFAULT '0' COMMENT '赠送的积分',\n `use_point_limit` int(11) DEFAULT NULL COMMENT '限制使用的积分数',\n `sub_title` varchar(255) DEFAULT NULL COMMENT '副标题',\n `description` text COMMENT '商品描述',\n `original_price` decimal(10,2) DEFAULT NULL COMMENT '市场价',\n `stock` int(11) DEFAULT NULL COMMENT '库存',\n `low_stock` int(11) DEFAULT NULL COMMENT '库存预警值',\n `unit` varchar(16) DEFAULT NULL COMMENT '单位',\n `weight` decimal(10,2) DEFAULT NULL COMMENT '商品重量,默认为克',\n `preview_status` int(1) DEFAULT NULL COMMENT '是否为预告商品:0->不是;1->是',\n `service_ids` varchar(64) DEFAULT NULL COMMENT '以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮',\n `keywords` varchar(255) DEFAULT NULL,\n `note` varchar(255) DEFAULT NULL,\n `album_pics` varchar(255) DEFAULT NULL COMMENT '画册图片,连产品图片限制为5张,以逗号分割',\n `detail_title` varchar(255) DEFAULT NULL,\n `detail_desc` text,\n `detail_html` text COMMENT '产品详情网页内容',\n `detail_mobile_html` text COMMENT '移动端网页详情',\n `promotion_start_time` datetime DEFAULT NULL COMMENT '促销开始时间',\n `promotion_end_time` datetime DEFAULT NULL COMMENT '促销结束时间',\n `promotion_per_limit` int(11) DEFAULT NULL COMMENT '活动限购数量',\n `promotion_type` int(1) DEFAULT NULL COMMENT '促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购',\n `product_category_name` varchar(255) DEFAULT NULL COMMENT '产品分类名称',\n `brand_name` varchar(255) DEFAULT NULL COMMENT '品牌名称',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_1` (`brand_id`),\n KEY `FK_Reference_13` (`product_attribute_category_id`),\n KEY `FK_Reference_5` (`product_category_id`),\n KEY `FK_Reference_6` (`feight_template_id`),\n CONSTRAINT `FK_Reference_1` FOREIGN KEY (`brand_id`) REFERENCES `pms_brand` (`id`),\n CONSTRAINT `FK_Reference_13` FOREIGN KEY (`product_attribute_category_id`) REFERENCES `pms_product_attribute_category` (`id`),\n CONSTRAINT `FK_Reference_5` FOREIGN KEY (`product_category_id`) REFERENCES `pms_product_category` (`id`),\n CONSTRAINT `FK_Reference_6` FOREIGN KEY (`feight_template_id`) REFERENCES `pms_feight_template` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品信息'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "feight_template_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "feight_template_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attribute_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attribute_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "货号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "delete_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "删除状态:0->未删除;1->已删除", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delete_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "publish_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上架状态:0->下架;1->上架", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "publish_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "new_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "新品状态:0->不是新品;1->新品", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "new_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommand_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "推荐状态;0->不推荐;1->推荐", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommand_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "verify_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "审核状态:0->未审核;1->审核通过", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "verify_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "sale", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "销量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sale" + }, + { + "objectType": "TableField_MYSQL", + "name": "price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送的成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_point", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "赠送的积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_point_limit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "限制使用的积分数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_point_limit" + }, + { + "objectType": "TableField_MYSQL", + "name": "sub_title", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "副标题", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sub_title" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + }, + { + "objectType": "TableField_MYSQL", + "name": "original_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "市场价", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "original_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "库存", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "low_stock", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "库存预警值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "low_stock" + }, + { + "objectType": "TableField_MYSQL", + "name": "unit", + "type": "varchar", + "length": 16, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "单位", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "unit" + }, + { + "objectType": "TableField_MYSQL", + "name": "weight", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品重量,默认为克", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "weight" + }, + { + "objectType": "TableField_MYSQL", + "name": "preview_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否为预告商品:0->不是;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "preview_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "service_ids", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "service_ids" + }, + { + "objectType": "TableField_MYSQL", + "name": "keywords", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "keywords" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "album_pics", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "画册图片,连产品图片限制为5张,以逗号分割", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "album_pics" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_title", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_title" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_desc", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_desc" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_html", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品详情网页内容", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_html" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_mobile_html", + "type": "text", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "移动端网页详情", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_mobile_html" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_start_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销开始时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_end_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销结束时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_per_limit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "活动限购数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_per_limit" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_name", + "type": "varchar", + "length": 255, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "品牌名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_name" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_1", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_1", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "brand_id", + "keyLength": 0, + "order": "", + "oldName": "brand_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_13", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_13", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_attribute_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_attribute_category_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_5", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_5", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_category_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_6", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_6", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "feight_template_id", + "keyLength": 0, + "order": "", + "oldName": "feight_template_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_1", + "fields": [ + "brand_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_brand", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_1" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_13", + "fields": [ + "product_attribute_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_attribute_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_13" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_5", + "fields": [ + "product_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_5" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_6", + "fields": [ + "feight_template_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_feight_template", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_6" + } + ], + "triggers": [], + "tablePartitions": [] + } + ], + "views": [] + } + ] + }, + "diagrams": [ + { + "name": "商品模块数据库表模型", + "paperWidth": 4, + "paperHeight": 1, + "tableFont": "Arial Unicode MS", + "tableFontSize": 14, + "isBalckWhite": false, + "showDBSchemaName": false, + "showViewRelations": true, + "notation": "default", + "showFieldComment": false, + "showTableComment": false, + "shapes": [ + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_album", + "x": 460, + "y": 940, + "width": 187, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_album_pic", + "x": 110, + "y": 990, + "width": 153, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_brand", + "x": 1030, + "y": 800, + "width": 220, + "height": 271, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_comment", + "x": 70, + "y": 630, + "width": 233, + "height": 351, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_comment_replay", + "x": 40, + "y": 310, + "width": 233, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_feight_template", + "x": 1270, + "y": 700, + "width": 218, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_member_price", + "x": 380, + "y": 750, + "width": 237, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product", + "x": 690, + "y": 200, + "width": 262, + "height": 891, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_attribute", + "x": 1430, + "y": 410, + "width": 262, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_attribute_category", + "x": 1020, + "y": 370, + "width": 258, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_attribute_value", + "x": 990, + "y": 550, + "width": 234, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_category", + "x": 1070, + "y": 20, + "width": 189, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_category_attribute_relation", + "x": 1330, + "y": 90, + "width": 321, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_full_reduction", + "x": 740, + "y": 10, + "width": 224, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_ladder", + "x": 470, + "y": 10, + "width": 175, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_operate_log", + "x": 240, + "y": 10, + "width": 214, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_product_vertify_record", + "x": 280, + "y": 300, + "width": 226, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "pms_sku_stock", + "x": 380, + "y": 470, + "width": 218, + "height": 271, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + } + ], + "layers": [], + "relations": [ + { + "name": "FK_Reference_25", + "sourceTableName": "pms_album_pic", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 278, + "y": 1050 + }, + { + "x": 361, + "y": 1050 + }, + { + "x": 361, + "y": 1030 + }, + { + "x": 445, + "y": 1030 + } + ], + "label": { + "x": 110, + "y": 10, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_24", + "sourceTableName": "pms_comment_replay", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 160, + "y": 516 + }, + { + "x": 160, + "y": 560 + }, + { + "x": 130, + "y": 560 + }, + { + "x": 130, + "y": 615 + } + ], + "label": { + "x": 168, + "y": 270, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_23", + "sourceTableName": "pms_comment", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 318, + "y": 920 + }, + { + "x": 675, + "y": 920 + } + ], + "label": { + "x": 314, + "y": 270, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_9", + "sourceTableName": "pms_member_price", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 632, + "y": 830 + }, + { + "x": 660, + "y": 830 + }, + { + "x": 660, + "y": 830 + }, + { + "x": 675, + "y": 830 + } + ], + "label": { + "x": 300, + "y": 270, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_1", + "sourceTableName": "pms_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 967, + "y": 920 + }, + { + "x": 1015, + "y": 920 + } + ], + "label": { + "x": 963, + "y": 200, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_6", + "sourceTableName": "pms_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 967, + "y": 820 + }, + { + "x": 1020, + "y": 820 + }, + { + "x": 1020, + "y": 790 + }, + { + "x": 1255, + "y": 790 + } + ], + "label": { + "x": 963, + "y": 200, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_13", + "sourceTableName": "pms_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 967, + "y": 420 + }, + { + "x": 1050, + "y": 420 + }, + { + "x": 1050, + "y": 420 + }, + { + "x": 1005, + "y": 420 + } + ], + "label": { + "x": 963, + "y": 200, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_12", + "sourceTableName": "pms_product_attribute", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1415, + "y": 540 + }, + { + "x": 1360, + "y": 540 + }, + { + "x": 1360, + "y": 420 + }, + { + "x": 1293, + "y": 420 + } + ], + "label": { + "x": 512, + "y": 270, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_14", + "sourceTableName": "pms_product_attribute_value", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 975, + "y": 610 + }, + { + "x": 967, + "y": 610 + } + ], + "label": { + "x": 300, + "y": 520, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_15", + "sourceTableName": "pms_product_attribute_value", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1239, + "y": 590 + }, + { + "x": 1330, + "y": 590 + }, + { + "x": 1330, + "y": 570 + }, + { + "x": 1415, + "y": 570 + } + ], + "label": { + "x": 300, + "y": 446, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_5", + "sourceTableName": "pms_product", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 967, + "y": 230 + }, + { + "x": 1040, + "y": 230 + }, + { + "x": 1040, + "y": 150 + }, + { + "x": 1055, + "y": 150 + } + ], + "label": { + "x": 963, + "y": 200, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_20", + "sourceTableName": "pms_product_category", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1274, + "y": 280 + }, + { + "x": 1290, + "y": 280 + }, + { + "x": 1290, + "y": 340 + }, + { + "x": 1230, + "y": 340 + }, + { + "x": 1230, + "y": 326 + } + ], + "label": { + "x": 300, + "y": 20, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_21", + "sourceTableName": "pms_product_category_attribute_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1315, + "y": 150 + }, + { + "x": 1320, + "y": 150 + }, + { + "x": 1320, + "y": 150 + }, + { + "x": 1274, + "y": 150 + } + ], + "label": { + "x": 303, + "y": 90, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_22", + "sourceTableName": "pms_product_category_attribute_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 1490, + "y": 216 + }, + { + "x": 1490, + "y": 400 + }, + { + "x": 1560, + "y": 400 + }, + { + "x": 1560, + "y": 395 + } + ], + "label": { + "x": 470, + "y": 90, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_11", + "sourceTableName": "pms_product_full_reduction", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 820, + "y": 156 + }, + { + "x": 820, + "y": 200 + }, + { + "x": 820, + "y": 200 + }, + { + "x": 820, + "y": 185 + } + ], + "label": { + "x": 300, + "y": 10, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_10", + "sourceTableName": "pms_product_ladder", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 660, + "y": 80 + }, + { + "x": 690, + "y": 80 + }, + { + "x": 690, + "y": 260 + }, + { + "x": 675, + "y": 260 + } + ], + "label": { + "x": 300, + "y": 10, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_4", + "sourceTableName": "pms_product_operate_log", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 469, + "y": 220 + }, + { + "x": 550, + "y": 220 + }, + { + "x": 550, + "y": 390 + }, + { + "x": 675, + "y": 390 + } + ], + "label": { + "x": 240, + "y": 10, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_3", + "sourceTableName": "pms_product_vertify_record", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 521, + "y": 380 + }, + { + "x": 530, + "y": 380 + }, + { + "x": 530, + "y": 430 + }, + { + "x": 675, + "y": 430 + } + ], + "label": { + "x": 280, + "y": 270, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_2", + "sourceTableName": "pms_sku_stock", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 613, + "y": 620 + }, + { + "x": 675, + "y": 620 + } + ], + "label": { + "x": 300, + "y": 270, + "width": 114, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + } + ], + "viewRelations": [] + } + ] +} \ No newline at end of file diff --git "a/document/navicat/\346\235\203\351\231\220\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" "b/document/navicat/\346\235\203\351\231\220\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" new file mode 100644 index 00000000..3c54e2b5 --- /dev/null +++ "b/document/navicat/\346\235\203\351\231\220\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" @@ -0,0 +1,4657 @@ +{ + "paper": { + "name": "A4", + "leftMargin": 0.5, + "rightMargin": 0.5, + "topMargin": 0.5, + "bottomMargin": 0.5, + "isPortriat": true + }, + "modelVersion": 2.01, + "defaultSchema": "Default", + "server": { + "objectType": "Server_MYSQL", + "name": "Default", + "serverVersion": 50799, + "edition": "Default", + "lowerCaseTableNames": 0, + "schemas": [ + { + "objectType": "Schema_MYSQL", + "name": "Default", + "tables": [], + "views": [] + }, + { + "objectType": "Schema_MYSQL", + "name": "mall-ref", + "tables": [ + { + "objectType": "Table_MYSQL", + "name": "ums_admin", + "comment": "后台用户表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `username` varchar(64) DEFAULT NULL COMMENT '用户名',\n `password` varchar(64) DEFAULT NULL COMMENT '密码',\n `icon` varchar(500) DEFAULT NULL COMMENT '头像',\n `email` varchar(100) DEFAULT NULL COMMENT '邮箱',\n `nick_name` varchar(200) DEFAULT NULL COMMENT '昵称',\n `note` varchar(500) DEFAULT NULL COMMENT '备注信息',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `login_time` datetime DEFAULT NULL COMMENT '最后登录时间',\n `status` int(1) DEFAULT '1' COMMENT '帐号启用状态:0->禁用;1->启用',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "username" + }, + { + "objectType": "TableField_MYSQL", + "name": "password", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "密码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "password" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "头像", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "email", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "邮箱", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "email" + }, + { + "objectType": "TableField_MYSQL", + "name": "nick_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "nick_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注信息", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "login_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "最后登录时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "login_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "1", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "帐号启用状态:0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_login_log", + "comment": "后台用户登录日志表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_login_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_login_log` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `ip` varchar(64) DEFAULT NULL,\n `address` varchar(100) DEFAULT NULL,\n `user_agent` varchar(100) DEFAULT NULL COMMENT '浏览器登录类型',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_46` (`admin_id`),\n CONSTRAINT `FK_Reference_46` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户登录日志表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "ip", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "ip" + }, + { + "objectType": "TableField_MYSQL", + "name": "address", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "address" + }, + { + "objectType": "TableField_MYSQL", + "name": "user_agent", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "浏览器登录类型", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "user_agent" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_46", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_46", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_46", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_46" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_permission_relation", + "comment": "后台用户和权限关系表(除角色中定义的权限以外的加减权限)", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_permission_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_permission_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `permission_id` bigint(20) DEFAULT NULL,\n `type` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_73` (`admin_id`),\n KEY `FK_Reference_74` (`permission_id`),\n CONSTRAINT `FK_Reference_73` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`),\n CONSTRAINT `FK_Reference_74` FOREIGN KEY (`permission_id`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户和权限关系表(除角色中定义的权限以外的加减权限)'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "permission_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "permission_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_73", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_73", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_74", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_74", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "permission_id", + "keyLength": 0, + "order": "", + "oldName": "permission_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_73", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_73" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_74", + "fields": [ + "permission_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_74" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_admin_role_relation", + "comment": "后台用户和角色关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_admin_role_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_admin_role_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `admin_id` bigint(20) DEFAULT NULL,\n `role_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_69` (`admin_id`),\n KEY `FK_Reference_70` (`role_id`),\n CONSTRAINT `FK_Reference_69` FOREIGN KEY (`admin_id`) REFERENCES `ums_admin` (`id`),\n CONSTRAINT `FK_Reference_70` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户和角色关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_69", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_69", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "admin_id", + "keyLength": 0, + "order": "", + "oldName": "admin_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_70", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_70", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_69", + "fields": [ + "admin_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_admin", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_69" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_70", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_70" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_growth_change_history", + "comment": "成长值变化历史记录表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_growth_change_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_growth_change_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `change_type` int(1) DEFAULT NULL COMMENT '改变类型:0->增加;1->减少',\n `change_count` int(11) DEFAULT NULL COMMENT '积分改变数量',\n `operate_man` varchar(100) DEFAULT NULL COMMENT '操作人员',\n `operate_note` varchar(200) DEFAULT NULL COMMENT '操作备注',\n `source_type` int(1) DEFAULT NULL COMMENT '积分来源:0->购物;1->管理员修改',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_56` (`member_id`),\n CONSTRAINT `FK_Reference_56` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='成长值变化历史记录表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "改变类型:0->增加;1->减少", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分改变数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_note" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分来源:0->购物;1->管理员修改", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_56", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_56", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_56", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_56" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_integration_change_history", + "comment": "积分变化历史记录表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_integration_change_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_integration_change_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `create_time` datetime DEFAULT NULL,\n `change_type` int(1) DEFAULT NULL COMMENT '改变类型:0->增加;1->减少',\n `change_count` int(11) DEFAULT NULL COMMENT '积分改变数量',\n `operate_man` varchar(100) DEFAULT NULL COMMENT '操作人员',\n `operate_note` varchar(200) DEFAULT NULL COMMENT '操作备注',\n `source_type` int(1) DEFAULT NULL COMMENT '积分来源:0->购物;1->管理员修改',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_55` (`member_id`),\n CONSTRAINT `FK_Reference_55` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='积分变化历史记录表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "改变类型:0->增加;1->减少", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "change_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分改变数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "change_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_note" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分来源:0->购物;1->管理员修改", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_55", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_55", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_55", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_55" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_integration_consume_setting", + "comment": "积分消费设置", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_integration_consume_setting", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_integration_consume_setting` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `deduction_per_amount` int(11) DEFAULT NULL COMMENT '每一元需要抵扣的积分数量',\n `max_percent_per_order` int(11) DEFAULT NULL COMMENT '每笔订单最高抵用百分比',\n `use_unit` int(11) DEFAULT NULL COMMENT '每次使用积分最小单位100',\n `coupon_status` int(1) DEFAULT NULL COMMENT '是否可以和优惠券同用;0->不可以;1->可以',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='积分消费设置'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "deduction_per_amount", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每一元需要抵扣的积分数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "deduction_per_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "max_percent_per_order", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每笔订单最高抵用百分比", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "max_percent_per_order" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_unit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每次使用积分最小单位100", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_unit" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否可以和优惠券同用;0->不可以;1->可以", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_status" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_menu", + "comment": "后台菜单表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_menu", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_menu` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `parent_id` bigint(20) DEFAULT NULL COMMENT '父级ID',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `title` varchar(100) DEFAULT NULL COMMENT '菜单名称',\n `level` int(4) DEFAULT NULL COMMENT '菜单级数',\n `sort` int(4) DEFAULT NULL COMMENT '菜单排序',\n `name` varchar(100) DEFAULT NULL COMMENT '前端名称',\n `icon` varchar(200) DEFAULT NULL COMMENT '前端图标',\n `hidden` int(1) DEFAULT NULL COMMENT '前端隐藏',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_80` (`parent_id`),\n CONSTRAINT `FK_Reference_80` FOREIGN KEY (`parent_id`) REFERENCES `ums_menu` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台菜单表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "parent_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "父级ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "parent_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "title", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "title" + }, + { + "objectType": "TableField_MYSQL", + "name": "level", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单级数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "level" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "hidden", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端隐藏", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "hidden" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_80", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_80", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "parent_id", + "keyLength": 0, + "order": "", + "oldName": "parent_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_80", + "fields": [ + "parent_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_menu", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_80" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_permission", + "comment": "后台用户权限表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_permission", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_permission` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `pid` bigint(20) DEFAULT NULL COMMENT '父级权限id',\n `name` varchar(100) DEFAULT NULL COMMENT '名称',\n `value` varchar(200) DEFAULT NULL COMMENT '权限值',\n `icon` varchar(500) DEFAULT NULL COMMENT '图标',\n `type` int(1) DEFAULT NULL COMMENT '权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)',\n `uri` varchar(200) DEFAULT NULL COMMENT '前端资源路径',\n `status` int(1) DEFAULT NULL COMMENT '启用状态;0->禁用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `sort` int(11) DEFAULT NULL COMMENT '排序',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_68` (`pid`),\n CONSTRAINT `FK_Reference_68` FOREIGN KEY (`pid`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户权限表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "pid", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "父级权限id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pid" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "value", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "权限值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "value" + }, + { + "objectType": "TableField_MYSQL", + "name": "icon", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "图标", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "icon" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + }, + { + "objectType": "TableField_MYSQL", + "name": "uri", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "前端资源路径", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "uri" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "启用状态;0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_68", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_68", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "pid", + "keyLength": 0, + "order": "", + "oldName": "pid" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_68", + "fields": [ + "pid" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_68" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_resource", + "comment": "后台资源表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_resource", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_resource` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `category_id` bigint(20) DEFAULT NULL COMMENT '资源分类ID',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `name` varchar(200) DEFAULT NULL COMMENT '资源名称',\n `url` varchar(200) DEFAULT NULL COMMENT '资源URL',\n `description` varchar(500) DEFAULT NULL COMMENT '描述',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_85` (`category_id`),\n CONSTRAINT `FK_Reference_85` FOREIGN KEY (`category_id`) REFERENCES `ums_resource_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台资源表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源分类ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "url", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源URL", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "url" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_85", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_85", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "category_id", + "keyLength": 0, + "order": "", + "oldName": "category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_85", + "fields": [ + "category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_resource_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_85" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_resource_category", + "comment": "资源分类表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_resource_category", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_resource_category` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `name` varchar(200) DEFAULT NULL COMMENT '分类名称',\n `sort` int(4) DEFAULT NULL COMMENT '排序',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='资源分类表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 4, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role", + "comment": "后台用户角色表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL COMMENT '名称',\n `description` varchar(500) DEFAULT NULL COMMENT '描述',\n `admin_count` int(11) DEFAULT NULL COMMENT '后台用户数量',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n `status` int(1) DEFAULT '1' COMMENT '启用状态:0->禁用;1->启用',\n `sort` int(11) DEFAULT '0',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户角色表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + }, + { + "objectType": "TableField_MYSQL", + "name": "admin_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "后台用户数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "admin_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "1", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "启用状态:0->禁用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_menu_relation", + "comment": "后台角色菜单关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_menu_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_menu_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',\n `menu_id` bigint(20) DEFAULT NULL COMMENT '菜单ID',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_81` (`role_id`),\n KEY `FK_Reference_82` (`menu_id`),\n CONSTRAINT `FK_Reference_81` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_82` FOREIGN KEY (`menu_id`) REFERENCES `ums_menu` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台角色菜单关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "角色ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "menu_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "菜单ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "menu_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_81", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_81", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_82", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_82", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "menu_id", + "keyLength": 0, + "order": "", + "oldName": "menu_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_81", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_81" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_82", + "fields": [ + "menu_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_menu", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_82" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_permission_relation", + "comment": "后台用户角色和权限关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_permission_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_permission_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL,\n `permission_id` bigint(20) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_71` (`role_id`),\n KEY `FK_Reference_72` (`permission_id`),\n CONSTRAINT `FK_Reference_71` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_72` FOREIGN KEY (`permission_id`) REFERENCES `ums_permission` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户角色和权限关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "permission_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "permission_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_71", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_71", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_72", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_72", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "permission_id", + "keyLength": 0, + "order": "", + "oldName": "permission_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_71", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_71" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_72", + "fields": [ + "permission_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_permission", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_72" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "ums_role_resource_relation", + "comment": "后台角色资源关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "ums_role_resource_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `ums_role_resource_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',\n `resource_id` bigint(20) DEFAULT NULL COMMENT '资源ID',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_83` (`role_id`),\n KEY `FK_Reference_84` (`resource_id`),\n CONSTRAINT `FK_Reference_83` FOREIGN KEY (`role_id`) REFERENCES `ums_role` (`id`),\n CONSTRAINT `FK_Reference_84` FOREIGN KEY (`resource_id`) REFERENCES `ums_resource` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台角色资源关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "role_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "角色ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "role_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "resource_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "资源ID", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "resource_id" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_83", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_83", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "role_id", + "keyLength": 0, + "order": "", + "oldName": "role_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_84", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_84", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "resource_id", + "keyLength": 0, + "order": "", + "oldName": "resource_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_83", + "fields": [ + "role_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_role", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_83" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_84", + "fields": [ + "resource_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_resource", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_84" + } + ], + "triggers": [], + "tablePartitions": [] + } + ], + "views": [] + } + ] + }, + "diagrams": [ + { + "name": "权限模块数据库表模型", + "paperWidth": 2, + "paperHeight": 1, + "tableFont": "Arial Unicode MS", + "tableFontSize": 14, + "isBalckWhite": false, + "showDBSchemaName": false, + "showViewRelations": true, + "notation": "default", + "showFieldComment": false, + "showTableComment": false, + "shapes": [ + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_admin", + "x": 50, + "y": 220, + "width": 180, + "height": 251, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_admin_login_log", + "x": 50, + "y": 10, + "width": 181, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_admin_role_relation", + "x": 10, + "y": 540, + "width": 205, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_menu", + "x": 540, + "y": 450, + "width": 162, + "height": 231, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_resource", + "x": 510, + "y": 270, + "width": 180, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_resource_category", + "x": 530, + "y": 40, + "width": 198, + "height": 131, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_role", + "x": 290, + "y": 230, + "width": 180, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_role_menu_relation", + "x": 290, + "y": 450, + "width": 201, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "ums_role_resource_relation", + "x": 260, + "y": 40, + "width": 226, + "height": 111, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + } + ], + "layers": [], + "relations": [ + { + "name": "FK_Reference_46", + "sourceTableName": "ums_admin_login_log", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 120, + "y": 196 + }, + { + "x": 120, + "y": 205 + } + ], + "label": { + "x": 128, + "y": 94, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_69", + "sourceTableName": "ums_admin_role_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 120, + "y": 525 + }, + { + "x": 120, + "y": 520 + }, + { + "x": 120, + "y": 520 + }, + { + "x": 120, + "y": 486 + } + ], + "label": { + "x": 128, + "y": 223, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_80", + "sourceTableName": "ums_menu", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 717, + "y": 650 + }, + { + "x": 730, + "y": 650 + }, + { + "x": 730, + "y": 710 + }, + { + "x": 670, + "y": 710 + }, + { + "x": 670, + "y": 696 + } + ], + "label": { + "x": 480, + "y": 270, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_85", + "sourceTableName": "ums_resource", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 590, + "y": 255 + }, + { + "x": 590, + "y": 231 + }, + { + "x": 590, + "y": 186 + } + ], + "label": { + "x": 548, + "y": 70, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_70", + "sourceTableName": "ums_admin_role_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 230, + "y": 590 + }, + { + "x": 265, + "y": 590 + }, + { + "x": 265, + "y": 360 + }, + { + "x": 275, + "y": 360 + } + ], + "label": { + "x": 176, + "y": 280, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_81", + "sourceTableName": "ums_role_menu_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 390, + "y": 435 + }, + { + "x": 390, + "y": 435 + }, + { + "x": 390, + "y": 435 + }, + { + "x": 390, + "y": 436 + } + ], + "label": { + "x": 377, + "y": 450, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_82", + "sourceTableName": "ums_role_menu_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 506, + "y": 520 + }, + { + "x": 525, + "y": 520 + }, + { + "x": 525, + "y": 520 + }, + { + "x": 525, + "y": 520 + } + ], + "label": { + "x": 270, + "y": 406, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_83", + "sourceTableName": "ums_role_resource_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 350, + "y": 166 + }, + { + "x": 350, + "y": 200 + }, + { + "x": 350, + "y": 200 + }, + { + "x": 350, + "y": 215 + } + ], + "label": { + "x": 308, + "y": 20, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_84", + "sourceTableName": "ums_role_resource_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 501, + "y": 100 + }, + { + "x": 503, + "y": 100 + }, + { + "x": 503, + "y": 290 + }, + { + "x": 495, + "y": 290 + } + ], + "label": { + "x": 447, + "y": 87, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + } + ], + "viewRelations": [] + } + ] +} \ No newline at end of file diff --git "a/document/navicat/\350\220\245\351\224\200\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" "b/document/navicat/\350\220\245\351\224\200\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" new file mode 100644 index 00000000..b5614651 --- /dev/null +++ "b/document/navicat/\350\220\245\351\224\200\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" @@ -0,0 +1,4647 @@ +{ + "paper": { + "name": "A4", + "leftMargin": 0.5, + "rightMargin": 0.5, + "topMargin": 0.5, + "bottomMargin": 0.5, + "isPortriat": true + }, + "modelVersion": 2.01, + "defaultSchema": "Default", + "server": { + "objectType": "Server_MYSQL", + "name": "Default", + "serverVersion": 50799, + "edition": "Default", + "lowerCaseTableNames": 0, + "schemas": [ + { + "objectType": "Schema_MYSQL", + "name": "Default", + "tables": [], + "views": [] + }, + { + "objectType": "Schema_MYSQL", + "name": "mall-ref", + "tables": [ + { + "objectType": "Table_MYSQL", + "name": "sms_coupon", + "comment": "优惠卷表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_coupon", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_coupon` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `type` int(1) DEFAULT NULL COMMENT '优惠卷类型;0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠券',\n `name` varchar(100) DEFAULT NULL,\n `platform` int(1) DEFAULT NULL COMMENT '使用平台:0->全部;1->移动;2->PC',\n `count` int(11) DEFAULT NULL COMMENT '数量',\n `amount` decimal(10,2) DEFAULT NULL COMMENT '金额',\n `per_limit` int(11) DEFAULT NULL COMMENT '每人限领张数',\n `min_point` decimal(10,2) DEFAULT NULL COMMENT '使用门槛;0表示无门槛',\n `start_time` datetime DEFAULT NULL,\n `end_time` datetime DEFAULT NULL,\n `use_type` int(1) DEFAULT NULL COMMENT '使用类型:0->全场通用;1->指定分类;2->指定商品',\n `note` varchar(200) DEFAULT NULL COMMENT '备注',\n `publish_count` int(11) DEFAULT NULL COMMENT '发行数量',\n `use_count` int(11) DEFAULT NULL COMMENT '已使用数量',\n `receive_count` int(11) DEFAULT NULL COMMENT '领取数量',\n `enable_time` datetime DEFAULT NULL COMMENT '可以领取的日期',\n `code` varchar(64) DEFAULT NULL COMMENT '优惠码',\n `member_level` int(1) DEFAULT NULL COMMENT '可领取的会员类型:0->无限时',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠卷表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠卷类型;0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠券", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "platform", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用平台:0->全部;1->移动;2->PC", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "platform" + }, + { + "objectType": "TableField_MYSQL", + "name": "count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "count" + }, + { + "objectType": "TableField_MYSQL", + "name": "amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "per_limit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每人限领张数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "per_limit" + }, + { + "objectType": "TableField_MYSQL", + "name": "min_point", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用门槛;0表示无门槛", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "min_point" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用类型:0->全场通用;1->指定分类;2->指定商品", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "publish_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发行数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "publish_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "已使用数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "领取数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "enable_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可以领取的日期", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "enable_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "code", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "code" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_level", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可领取的会员类型:0->无限时", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_level" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_coupon_history", + "comment": "优惠券使用、领取历史表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_coupon_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 49152, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_coupon_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `coupon_id` bigint(20) DEFAULT NULL,\n `member_id` bigint(20) DEFAULT NULL,\n `order_id` bigint(20) DEFAULT NULL COMMENT '订单id',\n `coupon_code` varchar(64) DEFAULT NULL,\n `member_nickname` varchar(64) DEFAULT NULL COMMENT '领取人昵称',\n `get_type` int(1) DEFAULT NULL COMMENT '获取类型:0->后台赠送;1->主动获取',\n `create_time` datetime DEFAULT NULL,\n `use_status` int(1) DEFAULT NULL COMMENT '使用状态:0->未使用;1->已使用;2->已过期',\n `use_time` datetime DEFAULT NULL COMMENT '使用时间',\n `order_sn` varchar(100) DEFAULT NULL COMMENT '订单号码',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_37` (`coupon_id`),\n KEY `FK_Reference_38` (`member_id`),\n KEY `FK_Reference_76` (`order_id`),\n CONSTRAINT `FK_Reference_37` FOREIGN KEY (`coupon_id`) REFERENCES `sms_coupon` (`id`),\n CONSTRAINT `FK_Reference_38` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_76` FOREIGN KEY (`order_id`) REFERENCES `oms_order` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠券使用、领取历史表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_code", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nickname", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "领取人昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nickname" + }, + { + "objectType": "TableField_MYSQL", + "name": "get_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "获取类型:0->后台赠送;1->主动获取", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "get_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用状态:0->未使用;1->已使用;2->已过期", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "使用时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_sn", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单号码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_sn" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_37", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_37", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "coupon_id", + "keyLength": 0, + "order": "", + "oldName": "coupon_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_38", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_38", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_76", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_76", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "order_id", + "keyLength": 0, + "order": "", + "oldName": "order_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_37", + "fields": [ + "coupon_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_coupon", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_37" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_38", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_38" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_76", + "fields": [ + "order_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_order", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_76" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_coupon_product_category_relation", + "comment": "优惠券和产品分类关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_coupon_product_category_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_coupon_product_category_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `coupon_id` bigint(20) DEFAULT NULL,\n `product_category_id` bigint(20) DEFAULT NULL,\n `product_category_name` varchar(200) DEFAULT NULL COMMENT '产品分类名称',\n `parent_category_name` varchar(200) DEFAULT NULL COMMENT '父分类名称',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_35` (`coupon_id`),\n KEY `FK_Reference_36` (`product_category_id`),\n CONSTRAINT `FK_Reference_35` FOREIGN KEY (`coupon_id`) REFERENCES `sms_coupon` (`id`),\n CONSTRAINT `FK_Reference_36` FOREIGN KEY (`product_category_id`) REFERENCES `pms_product_category` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠券和产品分类关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "产品分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "parent_category_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "父分类名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "parent_category_name" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_35", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_35", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "coupon_id", + "keyLength": 0, + "order": "", + "oldName": "coupon_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_36", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_36", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_category_id", + "keyLength": 0, + "order": "", + "oldName": "product_category_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_35", + "fields": [ + "coupon_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_coupon", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_35" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_36", + "fields": [ + "product_category_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product_category", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_36" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_coupon_product_relation", + "comment": "优惠券和产品的关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_coupon_product_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_coupon_product_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `coupon_id` bigint(20) DEFAULT NULL,\n `product_id` bigint(20) DEFAULT NULL,\n `product_name` varchar(500) DEFAULT NULL COMMENT '商品名称',\n `product_sn` varchar(200) DEFAULT NULL COMMENT '商品编码',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_33` (`coupon_id`),\n KEY `FK_Reference_34` (`product_id`),\n CONSTRAINT `FK_Reference_33` FOREIGN KEY (`coupon_id`) REFERENCES `sms_coupon` (`id`),\n CONSTRAINT `FK_Reference_34` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='优惠券和产品的关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sn", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品编码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sn" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_33", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_33", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "coupon_id", + "keyLength": 0, + "order": "", + "oldName": "coupon_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_34", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_34", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_33", + "fields": [ + "coupon_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_coupon", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_33" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_34", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_34" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_flash_promotion", + "comment": "限时购表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_flash_promotion", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_flash_promotion` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `title` varchar(200) DEFAULT NULL,\n `start_date` date DEFAULT NULL COMMENT '开始日期',\n `end_date` date DEFAULT NULL COMMENT '结束日期',\n `status` int(1) DEFAULT NULL COMMENT '上下线状态',\n `create_time` datetime DEFAULT NULL COMMENT '秒杀时间段名称',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='限时购表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "title", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "title" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_date", + "type": "date", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "开始日期", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_date" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_date", + "type": "date", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "结束日期", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_date" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上下线状态", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "秒杀时间段名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_flash_promotion_log", + "comment": "限时购通知记录", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_flash_promotion_log", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_flash_promotion_log` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `member_id` bigint(20) DEFAULT NULL,\n `product_id` bigint(20) DEFAULT NULL,\n `member_phone` varchar(64) DEFAULT NULL,\n `product_name` varchar(100) DEFAULT NULL,\n `subscribe_time` datetime DEFAULT NULL COMMENT '会员订阅时间',\n `send_time` datetime DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_44` (`member_id`),\n KEY `FK_Reference_45` (`product_id`),\n CONSTRAINT `FK_Reference_44` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_45` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='限时购通知记录'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_phone", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "subscribe_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "会员订阅时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subscribe_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "send_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "send_time" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_44", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_44", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_45", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_45", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_44", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_44" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_45", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_45" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_flash_promotion_product_relation", + "comment": "商品限时购与商品关系表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_flash_promotion_product_relation", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 49152, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_flash_promotion_product_relation` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',\n `flash_promotion_id` bigint(20) DEFAULT NULL,\n `flash_promotion_session_id` bigint(20) DEFAULT NULL COMMENT '编号',\n `product_id` bigint(20) DEFAULT NULL,\n `flash_promotion_price` decimal(10,2) DEFAULT NULL COMMENT '限时购价格',\n `flash_promotion_count` int(11) DEFAULT NULL COMMENT '限时购数量',\n `flash_promotion_limit` int(11) DEFAULT NULL COMMENT '每人限购数量',\n `sort` int(11) DEFAULT NULL COMMENT '排序',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_77` (`flash_promotion_id`),\n KEY `FK_Reference_78` (`flash_promotion_session_id`),\n KEY `FK_Reference_79` (`product_id`),\n CONSTRAINT `FK_Reference_77` FOREIGN KEY (`flash_promotion_id`) REFERENCES `sms_flash_promotion` (`id`),\n CONSTRAINT `FK_Reference_78` FOREIGN KEY (`flash_promotion_session_id`) REFERENCES `sms_flash_promotion_session` (`id`),\n CONSTRAINT `FK_Reference_79` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品限时购与商品关系表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_session_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_session_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "限时购价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "限时购数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_promotion_limit", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每人限购数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_promotion_limit" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_77", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_77", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "flash_promotion_id", + "keyLength": 0, + "order": "", + "oldName": "flash_promotion_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_78", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_78", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "flash_promotion_session_id", + "keyLength": 0, + "order": "", + "oldName": "flash_promotion_session_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_79", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_79", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_77", + "fields": [ + "flash_promotion_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_flash_promotion", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_77" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_78", + "fields": [ + "flash_promotion_session_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_flash_promotion_session", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_78" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_79", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_79" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_flash_promotion_session", + "comment": "限时购场次表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_flash_promotion_session", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_flash_promotion_session` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',\n `name` varchar(200) DEFAULT NULL COMMENT '场次名称',\n `start_time` time DEFAULT NULL COMMENT '每日开始时间',\n `end_time` time DEFAULT NULL COMMENT '每日结束时间',\n `status` int(1) DEFAULT NULL COMMENT '启用状态:0->不启用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '创建时间',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='限时购场次表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "场次名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_time", + "type": "time", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每日开始时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_time", + "type": "time", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "每日结束时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "启用状态:0->不启用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_advertise", + "comment": "首页轮播广告表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_advertise", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_advertise` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL,\n `type` int(1) DEFAULT NULL COMMENT '轮播位置:0->PC首页轮播;1->app首页轮播',\n `pic` varchar(500) DEFAULT NULL,\n `start_time` datetime DEFAULT NULL,\n `end_time` datetime DEFAULT NULL,\n `status` int(1) DEFAULT NULL COMMENT '上下线状态:0->下线;1->上线',\n `click_count` int(11) DEFAULT NULL COMMENT '点击数',\n `order_count` int(11) DEFAULT NULL COMMENT '下单数',\n `url` varchar(500) DEFAULT NULL COMMENT '链接地址',\n `note` varchar(500) DEFAULT NULL COMMENT '备注',\n `sort` int(11) DEFAULT '0' COMMENT '排序',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='首页轮播广告表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "轮播位置:0->PC首页轮播;1->app首页轮播", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "type" + }, + { + "objectType": "TableField_MYSQL", + "name": "pic", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "start_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "start_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "end_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "end_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "上下线状态:0->下线;1->上线", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "click_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "点击数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "click_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "下单数", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "url", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "链接地址", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "url" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "排序", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_brand", + "comment": "首页推荐品牌表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_brand", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_brand` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `brand_id` bigint(20) DEFAULT NULL,\n `brand_name` varchar(64) DEFAULT NULL,\n `recommend_status` int(1) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_39` (`brand_id`),\n CONSTRAINT `FK_Reference_39` FOREIGN KEY (`brand_id`) REFERENCES `pms_brand` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='首页推荐品牌表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "brand_name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "brand_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_39", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_39", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "brand_id", + "keyLength": 0, + "order": "", + "oldName": "brand_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_39", + "fields": [ + "brand_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_brand", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_39" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_new_product", + "comment": "新鲜好物表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_new_product", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_new_product` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `product_name` varchar(64) DEFAULT NULL,\n `recommend_status` int(1) DEFAULT NULL,\n `sort` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_40` (`product_id`),\n CONSTRAINT `FK_Reference_40` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='新鲜好物表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_40", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_40", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_40", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_40" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_recommend_product", + "comment": "人气推荐商品表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_recommend_product", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_recommend_product` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `product_name` varchar(64) DEFAULT NULL,\n `recommend_status` int(1) DEFAULT NULL,\n `sort` int(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_41` (`product_id`),\n CONSTRAINT `FK_Reference_41` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人气推荐商品表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_41", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_41", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_41", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_41" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "sms_home_recommend_subject", + "comment": "首页推荐专题表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "sms_home_recommend_subject", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `sms_home_recommend_subject` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `subject_id` bigint(20) DEFAULT NULL,\n `subject_name` varchar(64) DEFAULT NULL,\n `recommend_status` int(1) DEFAULT NULL,\n `sort` int(11) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `FK_Reference_42` (`subject_id`),\n CONSTRAINT `FK_Reference_42` FOREIGN KEY (`subject_id`) REFERENCES `cms_subject` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='首页推荐专题表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "subject_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subject_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "subject_name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "subject_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "recommend_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "recommend_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_42", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_42", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "subject_id", + "keyLength": 0, + "order": "", + "oldName": "subject_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_42", + "fields": [ + "subject_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "cms_subject", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_42" + } + ], + "triggers": [], + "tablePartitions": [] + } + ], + "views": [] + } + ] + }, + "diagrams": [ + { + "name": "营销模块数据库模型", + "paperWidth": 2, + "paperHeight": 1, + "tableFont": "Arial Unicode MS", + "tableFontSize": 14, + "isBalckWhite": false, + "showDBSchemaName": false, + "showViewRelations": true, + "notation": "default", + "showFieldComment": false, + "showTableComment": false, + "shapes": [ + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_coupon", + "x": 310, + "y": 220, + "width": 183, + "height": 411, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_coupon_history", + "x": 10, + "y": 40, + "width": 220, + "height": 271, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_coupon_product_category_relation", + "x": 250, + "y": 0, + "width": 312, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_coupon_product_relation", + "x": 10, + "y": 390, + "width": 241, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_flash_promotion", + "x": 670, + "y": 670, + "width": 177, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_flash_promotion_log", + "x": 820, + "y": 400, + "width": 207, + "height": 191, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_flash_promotion_product_relation", + "x": 320, + "y": 650, + "width": 303, + "height": 211, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_flash_promotion_session", + "x": 10, + "y": 670, + "width": 240, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_advertise", + "x": 600, + "y": 350, + "width": 176, + "height": 291, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_brand", + "x": 880, + "y": 190, + "width": 183, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_new_product", + "x": 590, + "y": 190, + "width": 201, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_recommend_product", + "x": 840, + "y": 20, + "width": 255, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "sms_home_recommend_subject", + "x": 580, + "y": 20, + "width": 252, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + } + ], + "layers": [], + "relations": [ + { + "name": "FK_Reference_37", + "sourceTableName": "sms_coupon_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 245, + "y": 170 + }, + { + "x": 290, + "y": 170 + }, + { + "x": 290, + "y": 420 + }, + { + "x": 295, + "y": 420 + } + ], + "label": { + "x": 0, + "y": 0, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_35", + "sourceTableName": "sms_coupon_product_category_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 420, + "y": 166 + }, + { + "x": 420, + "y": 210 + }, + { + "x": 420, + "y": 210 + }, + { + "x": 420, + "y": 205 + } + ], + "label": { + "x": 250, + "y": 0, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_33", + "sourceTableName": "sms_coupon_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 266, + "y": 470 + }, + { + "x": 300, + "y": 470 + }, + { + "x": 300, + "y": 470 + }, + { + "x": 295, + "y": 470 + } + ], + "label": { + "x": 261, + "y": 356, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_77", + "sourceTableName": "sms_flash_promotion_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 638, + "y": 750 + }, + { + "x": 631, + "y": 750 + }, + { + "x": 631, + "y": 750 + }, + { + "x": 655, + "y": 750 + } + ], + "label": { + "x": 10, + "y": 0, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_78", + "sourceTableName": "sms_flash_promotion_product_relation", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 305, + "y": 750 + }, + { + "x": 305, + "y": 750 + }, + { + "x": 305, + "y": 750 + }, + { + "x": 265, + "y": 750 + } + ], + "label": { + "x": 10, + "y": 0, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + } + ], + "viewRelations": [] + } + ] +} \ No newline at end of file diff --git "a/document/navicat/\350\256\242\345\215\225\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" "b/document/navicat/\350\256\242\345\215\225\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" new file mode 100644 index 00000000..a13e670a --- /dev/null +++ "b/document/navicat/\350\256\242\345\215\225\346\250\241\345\235\227\346\225\260\346\215\256\345\272\223\346\250\241\345\236\213.ndm2" @@ -0,0 +1,4961 @@ +{ + "paper": { + "name": "A4", + "leftMargin": 0.5, + "rightMargin": 0.5, + "topMargin": 0.5, + "bottomMargin": 0.5, + "isPortriat": true + }, + "modelVersion": 2.01, + "defaultSchema": "Default", + "server": { + "objectType": "Server_MYSQL", + "name": "Default", + "serverVersion": 50799, + "edition": "Default", + "lowerCaseTableNames": 0, + "schemas": [ + { + "objectType": "Schema_MYSQL", + "name": "Default", + "tables": [], + "views": [] + }, + { + "objectType": "Schema_MYSQL", + "name": "mall-ref", + "tables": [ + { + "objectType": "Table_MYSQL", + "name": "oms_cart_item", + "comment": "购物车表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_cart_item", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 49152, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_cart_item` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `product_id` bigint(20) DEFAULT NULL,\n `product_sku_id` bigint(20) DEFAULT NULL,\n `member_id` bigint(20) DEFAULT NULL,\n `quantity` int(11) DEFAULT NULL COMMENT '购买数量',\n `price` decimal(10,2) DEFAULT NULL COMMENT '添加到购物车的价格',\n `product_pic` varchar(1000) DEFAULT NULL COMMENT '商品主图',\n `product_name` varchar(500) DEFAULT NULL COMMENT '商品名称',\n `product_brand` varchar(200) DEFAULT NULL,\n `product_sn` varchar(200) DEFAULT NULL,\n `product_sub_title` varchar(500) DEFAULT NULL COMMENT '商品副标题(卖点)',\n `product_sku_code` varchar(200) DEFAULT NULL COMMENT '商品sku条码',\n `member_nickname` varchar(500) DEFAULT NULL COMMENT '会员昵称',\n `create_date` datetime DEFAULT NULL COMMENT '创建时间',\n `modify_date` datetime DEFAULT NULL COMMENT '修改时间',\n `delete_status` int(1) DEFAULT '0' COMMENT '是否删除',\n `product_category_id` bigint(20) DEFAULT NULL COMMENT '商品的分类',\n `product_attr` varchar(500) DEFAULT NULL COMMENT '商品销售属性:[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"4G\"}]',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_65` (`product_id`),\n KEY `FK_Reference_66` (`product_sku_id`),\n KEY `FK_Reference_67` (`member_id`),\n CONSTRAINT `FK_Reference_65` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`),\n CONSTRAINT `FK_Reference_66` FOREIGN KEY (`product_sku_id`) REFERENCES `pms_sku_stock` (`id`),\n CONSTRAINT `FK_Reference_67` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='购物车表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sku_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sku_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "quantity", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "购买数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "quantity" + }, + { + "objectType": "TableField_MYSQL", + "name": "price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "添加到购物车的价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "price" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_pic", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品主图", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_brand", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_brand" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sn", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sub_title", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品副标题(卖点)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sub_title" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sku_code", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品sku条码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sku_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_nickname", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "会员昵称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_nickname" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_date", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "创建时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_date" + }, + { + "objectType": "TableField_MYSQL", + "name": "modify_date", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "修改时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "modify_date" + }, + { + "objectType": "TableField_MYSQL", + "name": "delete_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否删除", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delete_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品的分类", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attr", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品销售属性:[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"4G\"}]", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attr" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_65", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_65", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_66", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_66", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_sku_id", + "keyLength": 0, + "order": "", + "oldName": "product_sku_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_67", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_67", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_65", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_65" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_66", + "fields": [ + "product_sku_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_sku_stock", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_66" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_67", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_67" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_company_address", + "comment": "公司收发货地址表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_company_address", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_company_address` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `address_name` varchar(200) DEFAULT NULL COMMENT '地址名称',\n `send_status` int(1) DEFAULT NULL COMMENT '默认发货地址:0->否;1->是',\n `receive_status` int(1) DEFAULT NULL COMMENT '是否默认收货地址:0->否;1->是',\n `name` varchar(64) DEFAULT NULL COMMENT '收发货人姓名',\n `phone` varchar(64) DEFAULT NULL COMMENT '收货人电话',\n `province` varchar(64) DEFAULT NULL COMMENT '省/直辖市',\n `city` varchar(64) DEFAULT NULL COMMENT '市',\n `region` varchar(64) DEFAULT NULL COMMENT '区',\n `detail_address` varchar(200) DEFAULT NULL COMMENT '详细地址',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公司收发货地址表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "address_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "地址名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "address_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "send_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "默认发货地址:0->否;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "send_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "是否默认收货地址:0->否;1->是", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收发货人姓名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "phone", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人电话", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "province", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "省/直辖市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "province" + }, + { + "objectType": "TableField_MYSQL", + "name": "city", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "city" + }, + { + "objectType": "TableField_MYSQL", + "name": "region", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "区", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "region" + }, + { + "objectType": "TableField_MYSQL", + "name": "detail_address", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "详细地址", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "detail_address" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order", + "comment": "订单表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单id',\n `member_id` bigint(20) NOT NULL,\n `coupon_id` bigint(20) DEFAULT NULL,\n `order_sn` varchar(64) DEFAULT NULL COMMENT '订单编号',\n `create_time` datetime DEFAULT NULL COMMENT '提交时间',\n `member_username` varchar(64) DEFAULT NULL COMMENT '用户帐号',\n `total_amount` decimal(10,2) DEFAULT NULL COMMENT '订单总金额',\n `pay_amount` decimal(10,2) DEFAULT NULL COMMENT '应付金额(实际支付金额)',\n `freight_amount` decimal(10,2) DEFAULT NULL COMMENT '运费金额',\n `promotion_amount` decimal(10,2) DEFAULT NULL COMMENT '促销优化金额(促销价、满减、阶梯价)',\n `integration_amount` decimal(10,2) DEFAULT NULL COMMENT '积分抵扣金额',\n `coupon_amount` decimal(10,2) DEFAULT NULL COMMENT '优惠券抵扣金额',\n `discount_amount` decimal(10,2) DEFAULT NULL COMMENT '管理员后台调整订单使用的折扣金额',\n `pay_type` int(1) DEFAULT NULL COMMENT '支付方式:0->未支付;1->支付宝;2->微信',\n `source_type` int(1) DEFAULT NULL COMMENT '订单来源:0->PC订单;1->app订单',\n `status` int(1) DEFAULT NULL COMMENT '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单',\n `order_type` int(1) DEFAULT NULL COMMENT '订单类型:0->正常订单;1->秒杀订单',\n `delivery_company` varchar(64) DEFAULT NULL COMMENT '物流公司(配送方式)',\n `delivery_sn` varchar(64) DEFAULT NULL COMMENT '物流单号',\n `auto_confirm_day` int(11) DEFAULT NULL COMMENT '自动确认时间(天)',\n `integration` int(11) DEFAULT NULL COMMENT '可以获得的积分',\n `growth` int(11) DEFAULT NULL COMMENT '可以活动的成长值',\n `promotion_info` varchar(100) DEFAULT NULL COMMENT '活动信息',\n `bill_type` int(1) DEFAULT NULL COMMENT '发票类型:0->不开发票;1->电子发票;2->纸质发票',\n `bill_header` varchar(200) DEFAULT NULL COMMENT '发票抬头',\n `bill_content` varchar(200) DEFAULT NULL COMMENT '发票内容',\n `bill_receiver_phone` varchar(32) DEFAULT NULL COMMENT '收票人电话',\n `bill_receiver_email` varchar(64) DEFAULT NULL COMMENT '收票人邮箱',\n `receiver_name` varchar(100) NOT NULL COMMENT '收货人姓名',\n `receiver_phone` varchar(32) NOT NULL COMMENT '收货人电话',\n `receiver_post_code` varchar(32) DEFAULT NULL COMMENT '收货人邮编',\n `receiver_province` varchar(32) DEFAULT NULL COMMENT '省份/直辖市',\n `receiver_city` varchar(32) DEFAULT NULL COMMENT '城市',\n `receiver_region` varchar(32) DEFAULT NULL COMMENT '区',\n `receiver_detail_address` varchar(200) DEFAULT NULL COMMENT '详细地址',\n `note` varchar(500) DEFAULT NULL COMMENT '订单备注',\n `confirm_status` int(1) DEFAULT NULL COMMENT '确认收货状态:0->未确认;1->已确认',\n `delete_status` int(1) NOT NULL DEFAULT '0' COMMENT '删除状态:0->未删除;1->已删除',\n `use_integration` int(11) DEFAULT NULL COMMENT '下单时使用的积分',\n `payment_time` datetime DEFAULT NULL COMMENT '支付时间',\n `delivery_time` datetime DEFAULT NULL COMMENT '发货时间',\n `receive_time` datetime DEFAULT NULL COMMENT '确认收货时间',\n `comment_time` datetime DEFAULT NULL COMMENT '评价时间',\n `modify_time` datetime DEFAULT NULL COMMENT '修改时间',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_57` (`member_id`),\n KEY `FK_Reference_61` (`coupon_id`),\n CONSTRAINT `FK_Reference_57` FOREIGN KEY (`member_id`) REFERENCES `ums_member` (`id`),\n CONSTRAINT `FK_Reference_61` FOREIGN KEY (`coupon_id`) REFERENCES `sms_coupon` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "提交时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "用户帐号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_username" + }, + { + "objectType": "TableField_MYSQL", + "name": "total_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单总金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "total_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "pay_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "应付金额(实际支付金额)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pay_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "freight_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "运费金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "freight_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "促销优化金额(促销价、满减、阶梯价)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "integration_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分抵扣金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "integration_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠券抵扣金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "discount_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "管理员后台调整订单使用的折扣金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "discount_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "pay_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "支付方式:0->未支付;1->支付宝;2->微信", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "pay_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "source_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单来源:0->PC订单;1->app订单", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "source_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单类型:0->正常订单;1->秒杀订单", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "delivery_company", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "物流公司(配送方式)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delivery_company" + }, + { + "objectType": "TableField_MYSQL", + "name": "delivery_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "物流单号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delivery_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "auto_confirm_day", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "自动确认时间(天)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "auto_confirm_day" + }, + { + "objectType": "TableField_MYSQL", + "name": "integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可以获得的积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "integration" + }, + { + "objectType": "TableField_MYSQL", + "name": "growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "可以活动的成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_info", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "活动信息", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_info" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_type", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发票类型:0->不开发票;1->电子发票;2->纸质发票", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_type" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_header", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发票抬头", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_header" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_content", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发票内容", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_content" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_receiver_phone", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收票人电话", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_receiver_phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "bill_receiver_email", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收票人邮箱", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "bill_receiver_email" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人姓名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_phone", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人电话", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_post_code", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人邮编", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_post_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_province", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "省份/直辖市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_province" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_city", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "城市", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_city" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_region", + "type": "varchar", + "length": 32, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "区", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_region" + }, + { + "objectType": "TableField_MYSQL", + "name": "receiver_detail_address", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "详细地址", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receiver_detail_address" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + }, + { + "objectType": "TableField_MYSQL", + "name": "confirm_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "确认收货状态:0->未确认;1->已确认", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "confirm_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "delete_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "删除状态:0->未删除;1->已删除", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delete_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "use_integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "下单时使用的积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "use_integration" + }, + { + "objectType": "TableField_MYSQL", + "name": "payment_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "支付时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "payment_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "delivery_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发货时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "delivery_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "确认收货时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "评价时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "modify_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "修改时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "modify_time" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_57", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_57", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "member_id", + "keyLength": 0, + "order": "", + "oldName": "member_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_61", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_61", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "coupon_id", + "keyLength": 0, + "order": "", + "oldName": "coupon_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_57", + "fields": [ + "member_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "ums_member", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "OneAndOnlyOneRelationship", + "oldName": "FK_Reference_57" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_61", + "fields": [ + "coupon_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "sms_coupon", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_61" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_item", + "comment": "订单中所包含的商品", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_item", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 32768, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_item` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `order_id` bigint(20) DEFAULT NULL COMMENT '订单id',\n `order_sn` varchar(64) DEFAULT NULL COMMENT '订单编号',\n `product_id` bigint(20) DEFAULT NULL,\n `product_pic` varchar(500) DEFAULT NULL,\n `product_name` varchar(200) DEFAULT NULL,\n `product_brand` varchar(200) DEFAULT NULL,\n `product_sn` varchar(64) DEFAULT NULL,\n `product_price` decimal(10,2) DEFAULT NULL COMMENT '销售价格',\n `product_quantity` int(11) DEFAULT NULL COMMENT '购买数量',\n `product_sku_id` bigint(20) DEFAULT NULL COMMENT '商品sku编号',\n `product_sku_code` varchar(50) DEFAULT NULL COMMENT '商品sku条码',\n `product_category_id` bigint(20) DEFAULT NULL COMMENT '商品分类id',\n `promotion_name` varchar(200) DEFAULT NULL COMMENT '商品促销名称',\n `promotion_amount` decimal(10,2) DEFAULT NULL COMMENT '商品促销分解金额',\n `coupon_amount` decimal(10,2) DEFAULT NULL COMMENT '优惠券优惠分解金额',\n `integration_amount` decimal(10,2) DEFAULT NULL COMMENT '积分优惠分解金额',\n `real_amount` decimal(10,2) DEFAULT NULL COMMENT '该商品经过优惠后的分解金额',\n `gift_integration` int(11) NOT NULL DEFAULT '0' COMMENT '商品赠送积分',\n `gift_growth` int(11) NOT NULL DEFAULT '0' COMMENT '商品赠送成长值',\n `product_attr` varchar(500) DEFAULT NULL COMMENT '商品销售属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_58` (`order_id`),\n KEY `FK_Reference_59` (`product_id`),\n CONSTRAINT `FK_Reference_58` FOREIGN KEY (`order_id`) REFERENCES `oms_order` (`id`),\n CONSTRAINT `FK_Reference_59` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单中所包含的商品'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_pic", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_brand", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_brand" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "销售价格", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_quantity", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "购买数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_quantity" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sku_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品sku编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sku_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_sku_code", + "type": "varchar", + "length": 50, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品sku条码", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_sku_code" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_category_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品分类id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_category_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品促销名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "promotion_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品促销分解金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "promotion_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "coupon_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "优惠券优惠分解金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "coupon_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "integration_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "积分优惠分解金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "integration_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "real_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "该商品经过优惠后的分解金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "real_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_integration", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品赠送积分", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_integration" + }, + { + "objectType": "TableField_MYSQL", + "name": "gift_growth", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "0", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品赠送成长值", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "gift_growth" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attr", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品销售属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attr" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_58", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_58", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "order_id", + "keyLength": 0, + "order": "", + "oldName": "order_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_59", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_59", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_58", + "fields": [ + "order_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_order", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_58" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_59", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_59" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_operate_history", + "comment": "订单操作历史记录", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_operate_history", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 16384, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_operate_history` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `order_id` bigint(20) DEFAULT NULL COMMENT '订单id',\n `operate_man` varchar(100) DEFAULT NULL COMMENT '操作人:用户;系统;后台管理员',\n `create_time` datetime DEFAULT NULL COMMENT '操作时间',\n `order_status` int(1) DEFAULT NULL COMMENT '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单',\n `note` varchar(500) DEFAULT NULL COMMENT '备注',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_62` (`order_id`),\n CONSTRAINT `FK_Reference_62` FOREIGN KEY (`order_id`) REFERENCES `oms_order` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单操作历史记录'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "operate_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作人:用户;系统;后台管理员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "operate_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "操作时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_status" + }, + { + "objectType": "TableField_MYSQL", + "name": "note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "note" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_62", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_62", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "order_id", + "keyLength": 0, + "order": "", + "oldName": "order_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_62", + "fields": [ + "order_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_order", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_62" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_return_apply", + "comment": "订单退货申请", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_return_apply", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 49152, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_return_apply` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `order_id` bigint(20) DEFAULT NULL COMMENT '订单id',\n `company_address_id` bigint(20) DEFAULT NULL COMMENT '收货地址表id',\n `product_id` bigint(20) DEFAULT NULL COMMENT '退货商品id',\n `order_sn` varchar(64) DEFAULT NULL COMMENT '订单编号',\n `create_time` datetime DEFAULT NULL COMMENT '申请时间',\n `member_username` varchar(64) DEFAULT NULL COMMENT '会员用户名',\n `return_amount` decimal(10,2) DEFAULT NULL COMMENT '退款金额',\n `return_name` varchar(100) DEFAULT NULL COMMENT '退货人姓名',\n `return_phone` varchar(100) DEFAULT NULL COMMENT '退货人电话',\n `status` int(1) DEFAULT NULL COMMENT '申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝',\n `handle_time` datetime DEFAULT NULL COMMENT '处理时间',\n `product_pic` varchar(500) DEFAULT NULL COMMENT '商品图片',\n `product_name` varchar(200) DEFAULT NULL COMMENT '商品名称',\n `product_brand` varchar(200) DEFAULT NULL COMMENT '商品品牌',\n `product_attr` varchar(500) DEFAULT NULL COMMENT '商品销售属性:颜色:红色;尺码:xl;',\n `product_count` int(11) DEFAULT NULL COMMENT '退货数量',\n `product_price` decimal(10,2) DEFAULT NULL COMMENT '商品单价',\n `product_real_price` decimal(10,2) DEFAULT NULL COMMENT '商品实际支付单价',\n `reason` varchar(200) DEFAULT NULL COMMENT '原因',\n `description` varchar(500) DEFAULT NULL COMMENT '描述',\n `proof_pics` varchar(1000) DEFAULT NULL COMMENT '凭证图片,以逗号隔开',\n `handle_note` varchar(500) DEFAULT NULL COMMENT '处理备注',\n `handle_man` varchar(100) DEFAULT NULL COMMENT '处理人员',\n `receive_man` varchar(100) DEFAULT NULL COMMENT '收货人',\n `receive_time` datetime DEFAULT NULL COMMENT '收货时间',\n `receive_note` varchar(500) DEFAULT NULL COMMENT '收货备注',\n PRIMARY KEY (`id`),\n KEY `FK_Reference_63` (`order_id`),\n KEY `FK_Reference_64` (`company_address_id`),\n KEY `FK_Reference_75` (`product_id`),\n CONSTRAINT `FK_Reference_63` FOREIGN KEY (`order_id`) REFERENCES `oms_order` (`id`),\n CONSTRAINT `FK_Reference_64` FOREIGN KEY (`company_address_id`) REFERENCES `oms_company_address` (`id`),\n CONSTRAINT `FK_Reference_75` FOREIGN KEY (`product_id`) REFERENCES `pms_product` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单退货申请'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "company_address_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货地址表id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "company_address_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货商品id", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_id" + }, + { + "objectType": "TableField_MYSQL", + "name": "order_sn", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单编号", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "order_sn" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "申请时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "member_username", + "type": "varchar", + "length": 64, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "会员用户名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "member_username" + }, + { + "objectType": "TableField_MYSQL", + "name": "return_amount", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退款金额", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "return_amount" + }, + { + "objectType": "TableField_MYSQL", + "name": "return_name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货人姓名", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "return_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "return_phone", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货人电话", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "return_phone" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "handle_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "处理时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "handle_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_pic", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品图片", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_pic" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_name", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品名称", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_name" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_brand", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品品牌", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_brand" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_attr", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品销售属性:颜色:红色;尺码:xl;", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_attr" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_count", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货数量", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_count" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品单价", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "product_real_price", + "type": "decimal", + "length": 10, + "decimals": 2, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "商品实际支付单价", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "product_real_price" + }, + { + "objectType": "TableField_MYSQL", + "name": "reason", + "type": "varchar", + "length": 200, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "原因", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "reason" + }, + { + "objectType": "TableField_MYSQL", + "name": "description", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "描述", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "description" + }, + { + "objectType": "TableField_MYSQL", + "name": "proof_pics", + "type": "varchar", + "length": 1000, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "凭证图片,以逗号隔开", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "proof_pics" + }, + { + "objectType": "TableField_MYSQL", + "name": "handle_note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "处理备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "handle_note" + }, + { + "objectType": "TableField_MYSQL", + "name": "handle_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "处理人员", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "handle_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_man", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货人", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_man" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_time" + }, + { + "objectType": "TableField_MYSQL", + "name": "receive_note", + "type": "varchar", + "length": 500, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "收货备注", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "receive_note" + } + ], + "indexes": [ + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_63", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_63", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "order_id", + "keyLength": 0, + "order": "", + "oldName": "order_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_64", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_64", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "company_address_id", + "keyLength": 0, + "order": "", + "oldName": "company_address_id" + } + ] + }, + { + "objectType": "Index_MYSQL", + "name": "FK_Reference_75", + "type": "NORMAL", + "method": "BTREE", + "comment": "", + "oldName": "FK_Reference_75", + "online": false, + "keyBlockSize": 0, + "parser": "", + "algorithm": "", + "lock": "", + "collation": "A", + "cardinality": "0", + "packed": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "product_id", + "keyLength": 0, + "order": "", + "oldName": "product_id" + } + ] + } + ], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [ + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_63", + "fields": [ + "order_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_order", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_63" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_64", + "fields": [ + "company_address_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "oms_company_address", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_64" + }, + { + "objectType": "ForeignKey_MYSQL", + "name": "FK_Reference_75", + "fields": [ + "product_id" + ], + "referenceSchema": "mall-ref", + "referenceTable": "pms_product", + "referenceFields": [ + "id" + ], + "onDelete": "RESTRICT", + "onUpdate": "RESTRICT", + "sourceCardinality": "ZeroOrManyRelationship", + "targetCardinality": "ZeroOrOneRelationship", + "oldName": "FK_Reference_75" + } + ], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_return_reason", + "comment": "退货原因表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_return_reason", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_return_reason` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `name` varchar(100) DEFAULT NULL COMMENT '退货类型',\n `sort` int(11) DEFAULT NULL,\n `status` int(1) DEFAULT NULL COMMENT '状态:0->不启用;1->启用',\n `create_time` datetime DEFAULT NULL COMMENT '添加时间',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='退货原因表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "name", + "type": "varchar", + "length": 100, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "utf8", + "collation": "utf8_general_ci", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "退货类型", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "name" + }, + { + "objectType": "TableField_MYSQL", + "name": "sort", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "sort" + }, + { + "objectType": "TableField_MYSQL", + "name": "status", + "type": "int", + "length": 1, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "状态:0->不启用;1->启用", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "status" + }, + { + "objectType": "TableField_MYSQL", + "name": "create_time", + "type": "datetime", + "length": -2147483648, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "添加时间", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "create_time" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + }, + { + "objectType": "Table_MYSQL", + "name": "oms_order_setting", + "comment": "订单设置表", + "engine": "InnoDB", + "characterSet": "utf8", + "collation": "utf8_general_ci", + "autoIncrement": 1, + "tablespace": "", + "storage": "", + "insertMethod": "", + "connection": "", + "checksum": false, + "rowFormat": "Dynamic", + "avgRowLength": 0, + "maxRows": 0, + "minRows": 0, + "keyBlockSize": 0, + "packKeys": "", + "delayKeyWrite": false, + "dataDirectory": "", + "indexDirectory": "", + "statsAutoRecalc": "", + "statsPersistent": "", + "statsSamplePages": 0, + "union": "", + "pageCheckSum": false, + "transactional": false, + "compression": "", + "oldName": "oms_order_setting", + "encryption": false, + "createOptions": "", + "createTime": "2022-12-16 09:58:53", + "checkTime": "", + "dataFree": 0, + "dataLength": 16384, + "indexLength": 0, + "maxDataLength": 0, + "rows": 0, + "updateTime": "", + "DDL": "CREATE TABLE `oms_order_setting` (\n `id` bigint(20) NOT NULL AUTO_INCREMENT,\n `flash_order_overtime` int(11) DEFAULT NULL COMMENT '秒杀订单超时关闭时间(分)',\n `normal_order_overtime` int(11) DEFAULT NULL COMMENT '正常订单超时时间(分)',\n `confirm_overtime` int(11) DEFAULT NULL COMMENT '发货后自动确认收货时间(天)',\n `finish_overtime` int(11) DEFAULT NULL COMMENT '自动完成交易时间,不能申请售后(天)',\n `comment_overtime` int(11) DEFAULT NULL COMMENT '订单完成后自动好评时间(天)',\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单设置表'", + "partitionBy": "", + "partitionByExpr": "", + "partitions": 0, + "partitionKeyAlgorithm": "", + "subPartitionBy": "", + "subPartitionByExpr": "", + "subPartitions": 0, + "subPartitionKeyAlgorithm": "", + "fields": [ + { + "objectType": "TableField_MYSQL", + "name": "id", + "type": "bigint", + "length": 20, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": false, + "defaultType": "Others", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": true, + "comment": "", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "id" + }, + { + "objectType": "TableField_MYSQL", + "name": "flash_order_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "秒杀订单超时关闭时间(分)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "flash_order_overtime" + }, + { + "objectType": "TableField_MYSQL", + "name": "normal_order_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "正常订单超时时间(分)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "normal_order_overtime" + }, + { + "objectType": "TableField_MYSQL", + "name": "confirm_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "发货后自动确认收货时间(天)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "confirm_overtime" + }, + { + "objectType": "TableField_MYSQL", + "name": "finish_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "自动完成交易时间,不能申请售后(天)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "finish_overtime" + }, + { + "objectType": "TableField_MYSQL", + "name": "comment_overtime", + "type": "int", + "length": 11, + "decimals": -2147483648, + "isUnsigned": false, + "isZeroFill": false, + "setEnumValues": "", + "isBinary": false, + "charset": "", + "collation": "", + "isNullable": true, + "defaultType": "Null", + "defaultValue": "", + "isOnUpdateCurrentTimestamp": false, + "isAutoInc": false, + "comment": "订单完成后自动好评时间(天)", + "columnFormat": "", + "storage": "", + "isVirtual": false, + "isGeneratedAlways": false, + "virtualExpr": "", + "virtualType": "", + "oldName": "comment_overtime" + } + ], + "indexes": [], + "primaryKey": { + "objectType": "PrimaryKey_MYSQL", + "name": "", + "fields": [ + { + "objectType": "IndexField_MYSQL", + "name": "id", + "keyLength": 0, + "order": "", + "oldName": "id" + } + ], + "oldName": "", + "indexMethod": "BTREE", + "comment": "" + }, + "foreignKeys": [], + "triggers": [], + "tablePartitions": [] + } + ], + "views": [] + } + ] + }, + "diagrams": [ + { + "name": "订单模块数据库模型", + "paperWidth": 2, + "paperHeight": 1, + "tableFont": "Arial Unicode MS", + "tableFontSize": 14, + "isBalckWhite": false, + "showDBSchemaName": false, + "showViewRelations": true, + "notation": "default", + "showFieldComment": false, + "showTableComment": false, + "shapes": [ + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_cart_item", + "x": 40, + "y": 0, + "width": 227, + "height": 411, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_company_address", + "x": 890, + "y": 540, + "width": 202, + "height": 251, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order", + "x": 310, + "y": 200, + "width": 250, + "height": 931, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_item", + "x": 20, + "y": 430, + "width": 235, + "height": 471, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_operate_history", + "x": 350, + "y": 0, + "width": 223, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_return_apply", + "x": 610, + "y": 370, + "width": 230, + "height": 591, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_return_reason", + "x": 620, + "y": 10, + "width": 212, + "height": 151, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + }, + { + "type": "table", + "schemaName": "mall-ref", + "tableName": "oms_order_setting", + "x": 620, + "y": 180, + "width": 213, + "height": 171, + "isBold": false, + "titleColor": { + "r": 55, + "g": 131, + "b": 192, + "a": 1 + } + } + ], + "layers": [], + "relations": [ + { + "name": "FK_Reference_58", + "sourceTableName": "oms_order_item", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 270, + "y": 670 + }, + { + "x": 292, + "y": 670 + }, + { + "x": 292, + "y": 670 + }, + { + "x": 295, + "y": 670 + } + ], + "label": { + "x": 20, + "y": 672, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_62", + "sourceTableName": "oms_order_operate_history", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 440, + "y": 186 + }, + { + "x": 440, + "y": 215 + }, + { + "x": 440, + "y": 215 + }, + { + "x": 440, + "y": 185 + } + ], + "label": { + "x": 350, + "y": 0, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_63", + "sourceTableName": "oms_order_return_apply", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 595, + "y": 670 + }, + { + "x": 580, + "y": 670 + }, + { + "x": 580, + "y": 670 + }, + { + "x": 575, + "y": 670 + } + ], + "label": { + "x": 610, + "y": 672, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + }, + { + "name": "FK_Reference_64", + "sourceTableName": "oms_order_return_apply", + "sourceSchemaName": "mall-ref", + "lineWidth": 1, + "visible": true, + "vertices": [ + { + "x": 855, + "y": 670 + }, + { + "x": 835, + "y": 670 + }, + { + "x": 835, + "y": 670 + }, + { + "x": 875, + "y": 670 + } + ], + "label": { + "x": 610, + "y": 672, + "width": 122, + "height": 40, + "fontName": "Arial Unicode MS", + "fontSize": 14, + "fontColor": { + "r": 51, + "g": 51, + "b": 51, + "a": 1 + }, + "isFontBold": false, + "isFontItalic": false, + "isVisible": false + } + } + ], + "viewRelations": [] + } + ] +} \ No newline at end of file diff --git a/document/pdm/mall_cms.pdm b/document/pdm/mall_cms.pdm deleted file mode 100644 index 9e127cfe..00000000 --- a/document/pdm/mall_cms.pdm +++ /dev/null @@ -1,3630 +0,0 @@ - - - - - - - - - -93BC3D98-8755-49B8-A4BB-077AADD2706A -mall_cms -mall_cms -1562382219 -zhenghong -1562382223 -zhenghong -[FolderOptions] - -[FolderOptions\Physical Objects] -GenerationCheckModel=Yes -GenerationPath= -GenerationOptions= -GenerationTasks= -GenerationTargets= -GenerationSelections= -RevPkey=Yes -RevFkey=Yes -RevAkey=Yes -RevCheck=Yes -RevIndx=Yes -RevOpts=Yes -RevViewAsTabl=No -RevViewOpts=Yes -RevSystAsTabl=Yes -RevTablPerm=No -RevViewPerm=No -RevProcPerm=No -RevDbpkPerm=No -RevSqncPerm=No -RevAdtPerm=No -RevUserPriv=No -RevUserOpts=No -RevGrpePriv=No -RevRolePriv=No -RevDtbsOpts=Yes -RevDtbsPerm=No -RevViewIndx=Yes -RevJidxOpts=Yes -RevStats=No -RevTspcPerm=No -RevCaseSensitive=No -GenTrgrStdMsg=Yes -GenTrgrMsgTab= -GenTrgrMsgNo= -GenTrgrMsgTxt= -TrgrPreserve=No -TrgrIns=Yes -TrgrUpd=Yes -TrgrDel=Yes -TrgrC2Ins=Yes -TrgrC2Upd=Yes -TrgrC3=Yes -TrgrC4=Yes -TrgrC5=Yes -TrgrC6=Yes -TrgrC7=Yes -TrgrC8=Yes -TrgrC9=Yes -TrgrC10=Yes -TrgrC11=Yes -TrgrC1=Yes -TrgrC12Ins=Yes -TrgrC12Upd=Yes -TrgrC13=Yes -UpdateTableStatistics=Yes -UpdateColumnStatistics=Yes - -[FolderOptions\Physical Objects\Database Generation] -GenScriptName=crebas -GenScriptName0= -GenScriptName1= -GenScriptName2= -GenScriptName3= -GenScriptName4= -GenScriptName5= -GenScriptName6= -GenScriptName7= -GenScriptName8= -GenScriptName9= -GenPathName= -GenSingleFile=Yes -GenODBC=No -GenCheckModel=Yes -GenScriptPrev=Yes -GenArchiveModel=No -GenUseSync=No -GenSyncChoice=0 -GenSyncArch= -GenSyncRmg=0 - -[FolderOptions\Physical Objects\Database Generation\Format] -GenScriptTitle=Yes -GenScriptNamLabl=No -GenScriptQDtbs=Yes -GenScriptQOwnr=Yes -GenScriptCase=0 -GenScriptEncoding=ANSI -GenScriptNAcct=No -IdentifierDelimiter=" - -[FolderOptions\Physical Objects\Database Generation\Database] -Create=Yes -Open=Yes -Close=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Database\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Tablespace] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Storage] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\User] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\User\Create] -Physical Options=No - -[FolderOptions\Physical Objects\Database Generation\Group] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\Role] -Create=Yes -Drop=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] -Default value=Yes -Check=Yes - -[FolderOptions\Physical Objects\Database Generation\AbstractDataType] -Create=Yes -Header=Yes -Footer=Yes -Drop=Yes -Comment=Yes -Install JAVA class=Yes -Remove JAVA class=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Rule] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Default] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Sequence] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] -Check=Yes -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] -User datatype=Yes -Default value=Yes -Check=Yes -Physical Options=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] -Constraint declaration=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] -Constraint declaration=Yes -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] -Primary key=Yes -Foreign key=Yes -Alternate key=Yes -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\View] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\View\Create] -Force Column list=No -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] -Table=Yes -View=Yes -Proc=Yes -Synonym=Yes -Database Package=Yes -Sequence=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Procedure] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Procedure\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\DatabasePackage] -Create=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\WebService] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Dimension] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synchronization] -GenBackupTabl=1 -GenKeepBackTabl=1 -GenTmpTablDrop=No -GenKeepTablOpts=No - -[FolderOptions\Physical Objects\Test Data] -GenDataPathName= -GenDataSinglefile=Yes -GenDataScriptName=testdata -GenDataScriptName0= -GenDataScriptName1= -GenDataScriptName2= -GenDataScriptName3= -GenDataScriptName4= -GenDataScriptName5= -GenDataScriptName6= -GenDataScriptName7= -GenDataScriptName8= -GenDataScriptName9= -GenDataOdbc=0 -GenDataDelOld=No -GenDataTitle=No -GenDataDefNumRows=20 -GenDataCommit=0 -GenDataPacket=0 -GenDataOwner=No -GenDataProfNumb= -GenDataProfChar= -GenDataProfDate= -GenDataCSVSeparator=, -GenDataFileFormat=CSV -GenDataUseWizard=No - -[FolderOptions\Pdm] -IndxIQName=%COLUMN%_%INDEXTYPE% -IndxPK=Yes -IndxFK=Yes -IndxAK=Yes -IndxPKName=%TABLE%_PK -IndxFKName=%REFR%_FK -IndxAKName=%AKEY%_AK -IndxPreserve=No -IndxThreshold=0 -IndxStats=No -RefrPreserve=No -JidxPreserve=No -RbldMultiFact=Yes -RbldMultiDim=Yes -RbldMultiJidx=Yes -CubePreserve=No -TablStProcPreserve=No -ProcDepPreserve=Yes -TrgrDepPreserve=Yes -CubeScriptPath= -CubeScriptCase=0 -CubeScriptEncoding=ANSI -CubeScriptNacct=No -CubeScriptHeader=No -CubeScriptExt=csv -CubeScriptExt0=txt -CubeScriptExt1= -CubeScriptExt2= -CubeScriptSep=, -CubeScriptDeli=" -EstimationYears=0 -DfltDomnName=D_%.U:VALUE% -DfltColnName=D_%.U:VALUE% -DfltReuse=Yes -DfltDrop=Yes -[ModelOptions] - -[ModelOptions\Physical Objects] -CaseSensitive=No -DisplayName=Yes -EnableTrans=No -UseTerm=No -EnableRequirements=No -EnableFullShortcut=Yes -DefaultDttp= -IgnoreOwner=No -RebuildTrigger=Yes -RefrUnique=No -RefrAutoMigrate=Yes -RefrMigrateReuse=Yes -RefrMigrateDomain=Yes -RefrMigrateCheck=Yes -RefrMigrateRule=Yes -RefrMigrateExtd=No -RefrMigrDefaultLink=No -RefrDfltImpl=D -RefrPrgtColn=No -RefrMigrateToEnd=No -RebuildTriggerDep=No -ColnFKName=%.3:PARENT%_%COLUMN% -ColnFKNameUse=No -DomnCopyDttp=Yes -DomnCopyChck=No -DomnCopyRule=No -DomnCopyMand=No -DomnCopyExtd=No -DomnCopyProf=No -Notation=0 -DomnDefaultMandatory=No -ColnDefaultMandatory=No -TablDefaultOwner= -ViewDefaultOwner= -TrgrDefaultOwnerTabl= -TrgrDefaultOwnerView= -IdxDefaultOwnerTabl= -IdxDefaultOwnerView= -JdxDefaultOwner= -DBPackDefaultOwner= -SeqDefaultOwner= -ProcDefaultOwner= -DBMSTrgrDefaultOwner= -Currency=USD -RefrDeleteConstraint=1 -RefrUpdateConstraint=1 -RefrParentMandatory=No -RefrParentChangeAllow=Yes -RefrCheckOnCommit=No - -[ModelOptions\Physical Objects\NamingOptionsTemplates] - -[ModelOptions\Physical Objects\ClssNamingOptions] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL] - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN] - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX] - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR] - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF] - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT] - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO] - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Connection] - -[ModelOptions\Pdm] - -[ModelOptions\Generate] - -[ModelOptions\Generate\Xsm] -GenRootElement=Yes -GenComplexType=No -GenAttribute=Yes -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=No - -[ModelOptions\Generate\Pdm] -RRMapping=No - -[ModelOptions\Generate\Cdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No -Notation=2 - -[ModelOptions\Generate\Oom] -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=Yes -ClassPrefix= - -[ModelOptions\Generate\Ldm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No - -[ModelOptions\Default Opts] - -[ModelOptions\Default Opts\TABL] -PhysOpts= - -[ModelOptions\Default Opts\COLN] -PhysOpts= - -[ModelOptions\Default Opts\INDX] -PhysOpts= - -[ModelOptions\Default Opts\AKEY] -PhysOpts= - -[ModelOptions\Default Opts\PKEY] -PhysOpts= - -[ModelOptions\Default Opts\STOR] -PhysOpts= - -[ModelOptions\Default Opts\TSPC] -PhysOpts= - -[ModelOptions\Default Opts\SQNC] -PhysOpts= - -[ModelOptions\Default Opts\DTBS] -PhysOpts= - -[ModelOptions\Default Opts\USER] -PhysOpts= - -[ModelOptions\Default Opts\JIDX] -PhysOpts= - - -9FACA835-A932-4E7F-97E6-B50D495EACD6 -MySQL 5.0 -MYSQL50 -1562382219 -zhenghong -1562382219 -zhenghong - -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B - - - - -7E56E115-2422-4191-BDF7-8D2F64817ADA -cms_diagram -cms_diagram -1562382219 -zhenghong -1562382267 -zhenghong -[DisplayPreferences] - -[DisplayPreferences\PDM] - -[DisplayPreferences\General] -Adjust to text=Yes -Snap Grid=No -Constrain Labels=Yes -Display Grid=No -Show Page Delimiter=Yes -Show Links intersections=Yes -Activate automatic link routing=Yes -Grid size=0 -Graphic unit=2 -Window color=255, 255, 255 -Background image= -Background mode=8 -Watermark image= -Watermark mode=8 -Show watermark on screen=No -Gradient mode=0 -Gradient end color=255, 255, 255 -Show Swimlane=No -SwimlaneVert=Yes -TreeVert=No -CompDark=0 - -[DisplayPreferences\Object] -Show Icon=No -Mode=2 -Trunc Length=40 -Word Length=40 -Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ -Shortcut IntIcon=Yes -Shortcut IntLoct=Yes -Shortcut IntFullPath=No -Shortcut IntLastPackage=Yes -Shortcut ExtIcon=Yes -Shortcut ExtLoct=No -Shortcut ExtFullPath=No -Shortcut ExtLastPackage=Yes -Shortcut ExtIncludeModl=Yes -EObjShowStrn=Yes -ExtendedObject.Comment=No -ExtendedObject.IconPicture=No -ExtendedObject.TextStyle=No -ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -ELnkShowStrn=Yes -ELnkShowName=Yes -ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> -FileObject.Stereotype=No -FileObject.DisplayName=Yes -FileObject.LocationOrName=No -FileObject.IconPicture=No -FileObject.TextStyle=No -FileObject.IconMode=Yes -FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Package.Stereotype=Yes -Package.Comment=No -Package.IconPicture=No -Package.TextStyle=No -Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Display Model Version=Yes -Table.Stereotype=Yes -Table.DisplayName=Yes -Table.OwnerDisplayName=No -Table.Columns=Yes -Table.Columns._Filter="All Columns" PDMCOLNALL -Table.Columns._Columns=Stereotype DataType KeyIndicator -Table.Columns._Limit=-5 -Table.Keys=No -Table.Keys._Columns=Stereotype Indicator -Table.Indexes=No -Table.Indexes._Columns=Stereotype -Table.Triggers=No -Table.Triggers._Columns=Stereotype -Table.Comment=No -Table.IconPicture=No -Table.TextStyle=No -Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -View.Stereotype=Yes -View.DisplayName=Yes -View.OwnerDisplayName=No -View.Columns=Yes -View.Columns._Columns=DisplayName -View.Columns._Limit=-5 -View.TemporaryVTables=Yes -View.Indexes=No -View.Comment=No -View.IconPicture=No -View.TextStyle=No -View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Procedure.Stereotype=No -Procedure.DisplayName=Yes -Procedure.OwnerDisplayName=No -Procedure.Comment=No -Procedure.IconPicture=No -Procedure.TextStyle=No -Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Reference.Cardinality=No -Reference.ImplementationType=No -Reference.ChildRole=Yes -Reference.Stereotype=Yes -Reference.DisplayName=No -Reference.ForeignKeyConstraintName=No -Reference.JoinExpression=No -Reference.Integrity=No -Reference.ParentRole=Yes -Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> -ViewReference.ChildRole=Yes -ViewReference.Stereotype=Yes -ViewReference.DisplayName=No -ViewReference.JoinExpression=No -ViewReference.ParentRole=Yes -ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> - -[DisplayPreferences\Symbol] - -[DisplayPreferences\Symbol\FRMEOBJ] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=6000 -Height=2000 -Brush color=255 255 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=64 -Brush gradient color=192 192 192 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 255 128 128 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FRMELNK] -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FILO] -OBJSTRNFont=新宋体,8,N -OBJSTRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LCNMFont=新宋体,8,N -LCNMFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=3600 -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PDMPCKG] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 178 178 178 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\TABL] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -KeysFont=新宋体,8,N -KeysFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -TriggersFont=新宋体,8,N -TriggersFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=178 214 252 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VIEW] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -TemporaryVTablesFont=新宋体,8,N -TemporaryVTablesFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=208 208 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PROC] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4000 -Height=1000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 108 0 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\REFR] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VREF] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\USRDEPD] -OBJXSTRFont=新宋体,8,N -OBJXSTRFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=2 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\Free Symbol] -Free TextFont=新宋体,8,N -Free TextFont color=0, 0, 0 -Line style=0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 -(8268, 11693) -((315,354), (433,354)) -1 -1 - - -1562382223 -1562398155 -((12764,12807), (14014,14721)) -((13389,13207),(13389,14321)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382223 -1562398152 -((4579,23391), (6818,24641)) -((6418,24016),(4979,24016)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382223 -1562398150 -((-13988,11721), (-9013,12971)) -((-9413,12346),(-13588,12346)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382223 -1562398164 -((3845,1409), (7827,2659)) -((7427,2034),(4245,2034)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382223 -1562398148 -((-13413,20230), (-9013,21480)) -((-13013,20855),(-9413,20855)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382223 -1562398161 -((-12528,4092), (-8975,5342)) -((-9375,4717),(-12128,4717)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382223 -1562398171 -((11,-6882), (8524,-5632)) -((411,-6257),(8124,-6257)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382223 -1562398158 --1 -((-9375,-3626), (4245,7696)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382223 -1562398154 --1 -((6965,14321), (19813,20693)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382223 -1562398155 --1 -((6644,8545), (27770,13207)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382223 -1562398147 --1 -((-9413,10469), (4979,25091)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382223 -1562398152 --1 -((6418,22017), (19205,26016)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382223 -1562398150 --1 -((-26436,9160), (-13588,15532)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382223 -1562398148 --1 -((-25461,17274), (-13013,24436)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382223 -1562398164 --1 -((7427,624), (19875,7786)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382223 -1562398161 --1 -((-24976,1531), (-12128,7903)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382223 -1562398169 --1 -((-8663,-13712), (411,-5004)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382223 -1562398171 --1 -((8124,-9443), (20200,-3071)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382223 -1562398166 --1 -((-24742,-9041), (-11714,-1019)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - - - - - - - - -49DC6A7A-DE94-469A-AA8E-A2153639263F -cms_topic -cms_topic -1522050428 -zhenghong -1562382223 -zhenghong -话题表 - - - -A753DDF3-C25C-47E3-94A3-20B9E1D7C790 -id -id -1522050454 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -BABE4291-7E93-4E41-B0CA-210867D62A7F -category_id -category_id -1522141317 -zhenghong -1562382223 -zhenghong -bigint - - -B5D46FC3-1973-45AB-979B-1337D545CA14 -name -name -1522050467 -zhenghong -1562382223 -zhenghong -varchar(255) -255 - - -EB9D6222-FDB5-427B-AB45-A3F0CE46EF1D -create_time -create_time -1522140807 -zhenghong -1562382223 -zhenghong -datetime - - -02FA6792-C97C-496B-B385-2E03EC443D15 -start_time -start_time -1522140807 -zhenghong -1562382223 -zhenghong -datetime - - -6DA17EBE-C2FA-485A-964B-2584174A3B51 -end_time -end_time -1522140807 -zhenghong -1562382223 -zhenghong -datetime - - -308139B8-C262-435C-8DE4-57C42909222C -attend_count -attend_count -1522140807 -zhenghong -1562382223 -zhenghong -参与人数 -int - - -CF4E298F-6AF3-4C9B-9A41-B8E706CE560C -attention_count -attention_count -1522140807 -zhenghong -1562382223 -zhenghong -关注人数 -int - - -A6DFB114-E497-4EF6-BBE1-676C03E97754 -read_count -read_count -1522140807 -zhenghong -1562382223 -zhenghong -int - - -6E0304B3-147E-4668-B1EE-0581AC805DAF -award_name -award_name -1522140807 -zhenghong -1562382223 -zhenghong -奖品名称 -varchar(100) -100 - - -1BB589FD-7C24-4DD8-886B-B0566BF03A51 -attend_type -attend_type -1522140989 -zhenghong -1562382223 -zhenghong -参与方式 -varchar(100) -100 - - -D80E300B-614F-4A4E-9152-92C768750AB3 -content -content -1522141034 -zhenghong -1562382223 -zhenghong -话题内容 -text - - - - -7691B008-F8B4-48F7-B4EB-8EE9E0277A2E -Key_1 -Key_1 -1522050454 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -C58D0CE0-8D23-4588-A188-DBC79CDFCB97 -cms_prefrence_area -cms_prefrence_area -1522112533 -zhenghong -1562382223 -zhenghong -优选专区 - - - -93ACC6A1-3AF9-4EB4-80CE-7F87F4772F12 -id -id -1522112534 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -4B5F635D-56DC-4030-BEA9-5B35B84D3A4E -name -name -1522112567 -zhenghong -1562382223 -zhenghong -varchar(255) -255 - - -58C30578-4E0C-402D-BC11-0555AE5076CD -sub_title -sub_title -1522139220 -zhenghong -1562382223 -zhenghong -varchar(255) -255 - - -414A2C53-1ABA-44ED-BA5C-CBC55ADB3DDD -pic -pic -1522139329 -zhenghong -1562382223 -zhenghong -展示图片 -varbinary(500) -500 - - -4846B9AA-9A6F-448D-BFDC-9F690E873D2E -sort -sort -1522139372 -zhenghong -1562382223 -zhenghong -int - - -074F346B-79BC-41D6-807A-D19DFDDC1B33 -show_status -show_status -1522139372 -zhenghong -1562382223 -zhenghong -int(1) -1 - - - - -62DF6EAF-2690-49A7-BA97-CB5F21859830 -Key_1 -Key_1 -1522112534 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -E34BDBD2-A5E1-4D53-9F2B-68C9546F1AF3 -cms_prefrence_area_product_relation -cms_prefrence_area_product_relation -1522112617 -zhenghong -1562382223 -zhenghong -优选专区和产品关系表 - - - -79DB0520-E813-43B5-B313-D7BF9ED06797 -id -id -1522112618 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -6A313E87-768B-4731-B32B-BA36A39CB76D -prefrence_area_id -prefrence_area_id -1522112691 -zhenghong -1562382223 -zhenghong -bigint - - -F0DB80E2-EF5F-4F70-81A8-60103148D351 -product_id -product_id -1522112694 -zhenghong -1562382223 -zhenghong -bigint - - - - -9F4F88AB-6872-4956-AE43-1A50C610F5D5 -Key_1 -Key_1 -1522112618 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -1E4205B7-F905-47A1-91A3-98FA96DFBC93 -cms_subject -cms_subject -1522138190 -zhenghong -1562382223 -zhenghong -专题表 - - - -B721695D-59D9-46AF-BDA6-74F0CFA5FB0E -id -id -1522138235 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -3FA4D52F-EA00-467E-BD6D-552B5AF8B461 -category_id -category_id -1522138705 -zhenghong -1562382223 -zhenghong -bigint - - -59DE1018-1E93-4DDC-AD71-55DF29403215 -title -title -1522138235 -zhenghong -1562382223 -zhenghong -varchar(100) -100 - - -2D029A92-569F-4856-BBB9-A7660681369B -pic -pic -1522138235 -zhenghong -1562382223 -zhenghong -专题主图 -varchar(500) -500 - - -1729C7A6-C188-4AD2-AC64-3A8692884E4B -product_count -product_count -1522138235 -zhenghong -1562382223 -zhenghong -关联产品数量 -int - - -9F8275D0-AC91-45FA-82A4-6789272007E7 -recommend_status -recommend_status -1522138235 -zhenghong -1562382223 -zhenghong -int(1) -1 - - -4D2A5D81-D81D-4B11-BA41-EB5379693344 -create_time -create_time -1522138313 -zhenghong -1562382223 -zhenghong -datetime - - -FC71652F-ABB5-4518-BA2F-E60CF24239C7 -collect_count -collect_count -1522138313 -zhenghong -1562382223 -zhenghong -int - - -3192A12F-6A65-41C5-B4D1-6B52332D9341 -read_count -read_count -1522138313 -zhenghong -1562382223 -zhenghong -int - - -3D6FF6A2-A691-4937-9D1F-E191DA34C045 -comment_count -comment_count -1522138313 -zhenghong -1562382223 -zhenghong -int - - -8DAC1D03-8386-46DD-B541-40F97C07155D -album_pics -album_pics -1522138313 -zhenghong -1562382223 -zhenghong -画册图片用逗号分割 -varchar(1000) -1000 - - -400D2DD5-F6D7-4FCC-9DEE-5041F2FDD6DD -description -description -1522138733 -zhenghong -1562382223 -zhenghong -varchar(1000) -1000 - - -AC118EC2-331C-49AB-8B04-6CC07C98AE4A -show_status -show_status -1522138733 -zhenghong -1562382223 -zhenghong -显示状态:0->不显示;1->显示 -int(1) -1 - - -F005D703-EBE6-4F0E-AAC8-409D9B08913E -content -content -1522138733 -zhenghong -1562382223 -zhenghong -text - - -A011CAA1-7CB2-4234-B9E1-B5FC5D7C7F6B -forward_count -forward_count -1522139567 -zhenghong -1562382223 -zhenghong -转发数 -int - - -0B1B15A2-8446-4CAF-BFBF-A0139324F950 -category_name -category_name -1542086194 -zhenghong -1562382223 -zhenghong -专题分类名称 -varchar(200) -200 - - - - -D176F8E7-D393-462A-ABE1-9E482073B473 -Key_1 -Key_1 -1522138603 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -415E856E-087C-4FBA-B0FA-6000DC994F3C -cms_subject_product_relation -cms_subject_product_relation -1522138561 -zhenghong -1562382223 -zhenghong -专题商品关系表 - - - -D991A6E2-405E-4EE4-8C2A-B70773BC029E -id -id -1522138589 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -5DBB7F44-1EC4-43D5-B155-4A919820C25E -subject_id -subject_id -1522138613 -zhenghong -1562382223 -zhenghong -bigint - - -AF4182D5-8D8D-4217-86F4-0742C560F691 -product_id -product_id -1522138618 -zhenghong -1562382223 -zhenghong -bigint - - - - -51EED529-D25F-4B12-879D-FEFAA36A170F -Key_1 -Key_1 -1522138589 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -5B1B9C64-80DA-426A-A22C-AA642A885ADD -cms_subject_category -cms_subject_category -1522138655 -zhenghong -1562382223 -zhenghong -专题分类表 - - - -F257D69B-BE38-4F1D-A7A9-78293CCC601A -id -id -1522138656 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -9115772D-130B-41C7-8261-6EF08CBA3C4F -name -name -1522138679 -zhenghong -1562382223 -zhenghong -varchar(100) -100 - - -2A86076B-8C18-41C9-8905-28082BAE8B4D -icon -icon -1522139032 -zhenghong -1562382223 -zhenghong -分类图标 -varchar(500) -500 - - -7F219C53-26F0-4CAB-8AD3-D76124D4D84A -subject_count -subject_count -1522139087 -zhenghong -1562382223 -zhenghong -专题数量 -int - - -03822A45-89CC-4B49-98F1-69D5471B58C0 -show_status -show_status -1522139129 -zhenghong -1562382223 -zhenghong -int(2) -2 - - -88CEFC15-A18E-4306-9E6A-FA848D53E9FC -sort -sort -1522139129 -zhenghong -1562382223 -zhenghong -int - - - - -51AB1E5E-65A4-4499-A262-79A8C419B6CA -Key_1 -Key_1 -1522138656 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -3B543080-DBF8-418D-B635-BEDE57365F0A -cms_subject_comment -cms_subject_comment -1522118840 -zhenghong -1562382223 -zhenghong -专题评论表 - - - -42D421D6-154D-4A25-9690-051DE798DFBB -id -id -1522118870 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -CA60B591-4410-4025-9B1A-AE62652DB1DA -subject_id -subject_id -1522141232 -zhenghong -1562382223 -zhenghong -bigint - - -C840A3D8-A3A8-4D1A-BD46-D676608901CC -member_nick_name -member_nick_name -1522118977 -zhenghong -1562382223 -zhenghong -varchar(255) -255 - - -98809127-C2A3-42D1-B442-556246382FF2 -member_icon -member_icon -1522118977 -zhenghong -1562382223 -zhenghong -varchar(255) -255 - - -204D3092-4D86-40AD-9804-9AA0AF8F32E4 -content -content -1522118977 -zhenghong -1562382223 -zhenghong -varchar(1000) -1000 - - -865C67C2-1970-46F7-9658-C98EF4421DCB -create_time -create_time -1522118977 -zhenghong -1562382223 -zhenghong -datetime - - -B81A890E-C86E-49C0-92FE-9ED3F294A537 -show_status -show_status -1522139856 -zhenghong -1562382223 -zhenghong -int(1) -1 - - - - -1A215BF5-B713-4982-BAF8-5BC0EB2BD614 -Key_1 -Key_1 -1522118880 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -7FC98AA8-83C8-4CA4-B05C-19BEEBB4C2F8 -cms_topic_comment -cms_topic_comment -1522118840 -zhenghong -1562382223 -zhenghong -专题评论表 - - - -979AF53E-B771-4ACB-B0DC-A996681F4E32 -id -id -1522118870 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -75EE1F2A-D4B4-4419-B26A-BAF320B53E97 -member_nick_name -member_nick_name -1522118977 -zhenghong -1562382223 -zhenghong -varchar(255) -255 - - -854D89F6-1B40-46E0-871B-48AC5922D541 -topic_id -topic_id -1522141157 -zhenghong -1562382223 -zhenghong -bigint - - -10559D21-8DC6-4909-A5EB-0BC1279E418B -member_icon -member_icon -1522118977 -zhenghong -1562382223 -zhenghong -varchar(255) -255 - - -480E0B8D-D39C-4B6A-B5B1-B8C6C5083A34 -content -content -1522118977 -zhenghong -1562382223 -zhenghong -varchar(1000) -1000 - - -B7CEF520-F346-45CB-AFF7-9B7FE6394D2F -create_time -create_time -1522118977 -zhenghong -1562382223 -zhenghong -datetime - - -C5D3D7D6-0C17-4364-8747-E2594E2ADD37 -show_status -show_status -1522139856 -zhenghong -1562382223 -zhenghong -int(1) -1 - - - - -D8AF11A2-FE44-4C75-B454-8FF4BB113779 -Key_1 -Key_1 -1522118880 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -A91DF854-0A37-4456-96B1-D98285E5379A -cms_topic_category -cms_topic_category -1522138655 -zhenghong -1562382223 -zhenghong -话题分类表 - - - -0B2C26DD-045B-4818-893A-18B808624E1B -id -id -1522138656 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -7E21DB61-610E-4E56-B5B5-49FFA51D26F9 -name -name -1522138679 -zhenghong -1562382223 -zhenghong -varchar(100) -100 - - -25B9C6FA-D56F-4EED-8884-135B2C80F8B1 -icon -icon -1522139032 -zhenghong -1562382223 -zhenghong -分类图标 -varchar(500) -500 - - -21A25825-5A5E-43B8-8A58-EE6DF518071F -subject_count -subject_count -1522139087 -zhenghong -1562382223 -zhenghong -专题数量 -int - - -DE28D801-8B38-496B-8182-36D365136241 -show_status -show_status -1522139129 -zhenghong -1562382223 -zhenghong -int(2) -2 - - -331374D0-AAE5-4E2D-8CFB-DD4ED74C5EC9 -sort -sort -1522139129 -zhenghong -1562382223 -zhenghong -int - - - - -AB2495B7-154F-4B2C-B61B-2D0EF0C54498 -Key_1 -Key_1 -1522138656 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -E5C1D6A2-CD74-48DF-A0F6-85778FE6A589 -cms_help -cms_help -1522141745 -zhenghong -1562382223 -zhenghong -帮助表 - - - -9A2DC0BD-C142-4717-A579-45C0CF1CEBFB -id -id -1522141746 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -3302ED99-4B4E-4603-B95A-7BD6B2EE251E -category_id -category_id -1522142006 -zhenghong -1562382223 -zhenghong -bigint - - -5DBCF6B0-46A2-4B7A-A3F3-03FE1BA3F5D2 -icon -icon -1522141808 -zhenghong -1562382223 -zhenghong -varchar(500) -500 - - -97B55403-467C-434B-B137-4E8C691E14EC -title -title -1522141808 -zhenghong -1562382223 -zhenghong -varchar(100) -100 - - -75A071B1-1F82-417D-8A12-FEFB8CE0755F -show_status -show_status -1522141808 -zhenghong -1562382223 -zhenghong -int(1) -1 - - -B8C663DE-5808-4025-896A-75AFBE21556E -create_time -create_time -1522141808 -zhenghong -1562382223 -zhenghong -datetime - - -19542E70-C753-4735-8FBE-1A10DF6E8C9F -read_count -read_count -1522141808 -zhenghong -1562382223 -zhenghong -int(1) -1 - - -B7BB0184-064C-4744-8F87-FB5F1864D10B -content -content -1522141808 -zhenghong -1562382223 -zhenghong -text - - - - -46AEEDE3-DC7F-4DFA-A112-0C338DE42AD5 -Key_1 -Key_1 -1522141746 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -0FB93080-BA28-4F8E-8C33-0363A6A1E7B5 -cms_help_category -cms_help_category -1522138655 -zhenghong -1562382223 -zhenghong -帮助分类表 - - - -FFC352DA-C29C-42A5-A6C8-2D6BEB6C3CF4 -id -id -1522138656 -zhenghong -1562382223 -zhenghong -bigint -1 -1 - - -54C730DB-6BB9-4558-B47E-3387C4814421 -name -name -1522138679 -zhenghong -1562382223 -zhenghong -varchar(100) -100 - - -C662F63A-B4E2-4E6D-8450-35C1318A56A1 -icon -icon -1522139032 -zhenghong -1562382223 -zhenghong -分类图标 -varchar(500) -500 - - -14B60D15-78CE-4D23-838A-329E1FB55FAD -help_count -help_count -1522139087 -zhenghong -1562382223 -zhenghong -专题数量 -int - - -89ABB02B-12F5-4C7E-9486-4446FABF5C52 -show_status -show_status -1522139129 -zhenghong -1562382223 -zhenghong -int(2) -2 - - -3EFED6BB-E44B-401B-830E-4C3A8880084A -sort -sort -1522139129 -zhenghong -1562382223 -zhenghong -int - - - - -37AD8049-4613-4C39-AA67-6626D4B8A9F0 -Key_1 -Key_1 -1522138656 -zhenghong -1562382223 -zhenghong - - - - - - - - - - -86A7444B-E20E-4817-95E6-17EAFE8D8A08 -cms_member_report -cms_member_report -1522142154 -zhenghong -1562382223 -zhenghong -用户举报表 - - - -49789C36-4022-44C4-BDDE-DFF4FD090E1D -id -id -1522142174 -zhenghong -1562382223 -zhenghong -bigint - - -638BCFC4-F479-4C73-A330-B791232B7872 -report_type -report_type -1522142174 -zhenghong -1562382223 -zhenghong -举报类型:0->商品评价;1->话题内容;2->用户评论 -int(1) -1 - - -BB2B9A06-5D56-4CEA-8293-FB07D1652152 -report_member_name -report_member_name -1522142240 -zhenghong -1562382223 -zhenghong -举报人 -varchar(100) -100 - - -DB44E5C5-C1D7-4304-85E0-FBA1E40E5E51 -create_time -create_time -1522142298 -zhenghong -1562382223 -zhenghong -datetime - - -87130427-D7EE-457F-9874-860169983FBA -report_object -report_object -1522142298 -zhenghong -1562382223 -zhenghong -varchar(100) -100 - - -D346F26D-7071-46EB-8F9C-A1428FFD3E54 -report_status -report_status -1522142298 -zhenghong -1562382223 -zhenghong -举报状态:0->未处理;1->已处理 -int(1) -1 - - -1DE710A5-3CF1-41FA-A0DC-D3CCB92E991D -handle_status -handle_status -1522142386 -zhenghong -1562382223 -zhenghong -处理结果:0->无效;1->有效;2->恶意 -int(1) -1 - - -2EFE844B-EAC2-4961-912A-C84B5A6D3430 -note -note -1522142456 -zhenghong -1562382223 -zhenghong -varchar(200) -200 - - - - - - -BD72FB7C-BCA5-4AA8-BC59-786B41FF8815 -Reference_18 -Reference_18 -1522112691 -zhenghong -1522112691 -zhenghong -0..* -1 -1 - - - - - - - - - - - -15E0BA39-1922-4BBE-AB5F-4419B11688EB -1522112691 -zhenghong -1522112691 -zhenghong - - - - - - - - - - -0593D4F6-D304-4DD5-8F7D-63D14004578F -Reference_26 -Reference_26 -1522138613 -zhenghong -1522138613 -zhenghong -0..* -1 -1 - - - - - - - - - - - -3BC3AA81-9940-4281-83C0-80E2B9713658 -1522138613 -zhenghong -1522138613 -zhenghong - - - - - - - - - - -894F7E98-7CFA-4F16-A5FD-4DE2CFE6D3B0 -Reference_28 -Reference_28 -1522138705 -zhenghong -1522138705 -zhenghong -0..* -1 -1 - - - - - - - - - - - -38044B3F-BC04-4940-AD03-E5557D59BD25 -1522138705 -zhenghong -1522138705 -zhenghong - - - - - - - - - - -37A69B6E-01CF-46B8-81FD-FA5FB48CDD44 -Reference_30 -Reference_30 -1522141157 -zhenghong -1522141157 -zhenghong -0..* -1 -1 - - - - - - - - - - - -18F79F45-48BA-4527-A36A-E30EE81DAF69 -1522141157 -zhenghong -1522141157 -zhenghong - - - - - - - - - - -B78754A7-57CA-400D-B136-71F099DB2CB6 -Reference_29 -Reference_29 -1522141232 -zhenghong -1522141232 -zhenghong -0..* -1 -1 - - - - - - - - - - - -A386F1C1-A4E8-4D3E-B334-32363488101B -1522141232 -zhenghong -1522141232 -zhenghong - - - - - - - - - - -76738C59-0CCD-46E3-81F0-A1BF950CD2E0 -Reference_31 -Reference_31 -1522141316 -zhenghong -1562382223 -zhenghong -0..* -1 -1 - - - - - - - - - - - -6D95E447-7A15-4DC4-B964-31E831443639 -1522141317 -zhenghong -1522141317 -zhenghong - - - - - - - - - - -4F1FC5D6-2B28-4B5B-8C46-25F7554FEFD7 -Reference_32 -Reference_32 -1522142006 -zhenghong -1522142006 -zhenghong -0..* -1 -1 - - - - - - - - - - - -34B350FC-A979-41AE-AD85-6FBFD1A174C7 -1522142006 -zhenghong -1522142006 -zhenghong - - - - - - - - - - - - -FE98B7D0-9559-4B06-A8BB-59B33DF51E25 -PUBLIC -PUBLIC -1562382219 -zhenghong -1562382219 -zhenghong - - - - -70204CC9-296E-48D4-A5BD-F6832F9C2037 -MySQL 5.0 -MYSQL50 -1562382219 -zhenghong -1562382219 -zhenghong -file:///%_DBMS%/mysql50.xdb -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B -1276524678 - - - - - - - - - - \ No newline at end of file diff --git a/document/pdm/mall_oms.pdm b/document/pdm/mall_oms.pdm deleted file mode 100644 index 3b8fe265..00000000 --- a/document/pdm/mall_oms.pdm +++ /dev/null @@ -1,3992 +0,0 @@ - - - - - - - - - -6931A1DF-3870-4E03-AC7C-3CCFBCCFC72B -mall_oms -mall_oms -1562381480 -zhenghong -1563093407 -zhenghong -[FolderOptions] - -[FolderOptions\Physical Objects] -GenerationCheckModel=Yes -GenerationPath= -GenerationOptions= -GenerationTasks= -GenerationTargets= -GenerationSelections= -RevPkey=Yes -RevFkey=Yes -RevAkey=Yes -RevCheck=Yes -RevIndx=Yes -RevOpts=Yes -RevViewAsTabl=No -RevViewOpts=Yes -RevSystAsTabl=Yes -RevTablPerm=No -RevViewPerm=No -RevProcPerm=No -RevDbpkPerm=No -RevSqncPerm=No -RevAdtPerm=No -RevUserPriv=No -RevUserOpts=No -RevGrpePriv=No -RevRolePriv=No -RevDtbsOpts=Yes -RevDtbsPerm=No -RevViewIndx=Yes -RevJidxOpts=Yes -RevStats=No -RevTspcPerm=No -RevCaseSensitive=No -GenTrgrStdMsg=Yes -GenTrgrMsgTab= -GenTrgrMsgNo= -GenTrgrMsgTxt= -TrgrPreserve=No -TrgrIns=Yes -TrgrUpd=Yes -TrgrDel=Yes -TrgrC2Ins=Yes -TrgrC2Upd=Yes -TrgrC3=Yes -TrgrC4=Yes -TrgrC5=Yes -TrgrC6=Yes -TrgrC7=Yes -TrgrC8=Yes -TrgrC9=Yes -TrgrC10=Yes -TrgrC11=Yes -TrgrC1=Yes -TrgrC12Ins=Yes -TrgrC12Upd=Yes -TrgrC13=Yes -UpdateTableStatistics=Yes -UpdateColumnStatistics=Yes - -[FolderOptions\Physical Objects\Database Generation] -GenScriptName=crebas -GenScriptName0= -GenScriptName1= -GenScriptName2= -GenScriptName3= -GenScriptName4= -GenScriptName5= -GenScriptName6= -GenScriptName7= -GenScriptName8= -GenScriptName9= -GenPathName= -GenSingleFile=Yes -GenODBC=No -GenCheckModel=Yes -GenScriptPrev=Yes -GenArchiveModel=No -GenUseSync=No -GenSyncChoice=0 -GenSyncArch= -GenSyncRmg=0 - -[FolderOptions\Physical Objects\Database Generation\Format] -GenScriptTitle=Yes -GenScriptNamLabl=No -GenScriptQDtbs=No -GenScriptQOwnr=Yes -GenScriptCase=0 -GenScriptEncoding=ANSI -GenScriptNAcct=No -IdentifierDelimiter=" - -[FolderOptions\Physical Objects\Database Generation\Database] -Create=Yes -Open=Yes -Close=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Database\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Tablespace] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Storage] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\User] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\User\Create] -Physical Options=No - -[FolderOptions\Physical Objects\Database Generation\Group] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\Role] -Create=Yes -Drop=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] -Default value=Yes -Check=Yes - -[FolderOptions\Physical Objects\Database Generation\AbstractDataType] -Create=Yes -Header=Yes -Footer=Yes -Drop=Yes -Comment=Yes -Install JAVA class=Yes -Remove JAVA class=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Rule] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Default] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Sequence] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] -Check=Yes -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] -User datatype=No -Default value=Yes -Check=Yes -Physical Options=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] -Constraint declaration=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] -Constraint declaration=Yes -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] -Primary key=No -Foreign key=No -Alternate key=No -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\View] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\View\Create] -Force Column list=No -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] -Table=Yes -View=Yes -Proc=Yes -Synonym=Yes -Database Package=Yes -Sequence=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Procedure] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Procedure\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\DatabasePackage] -Create=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\WebService] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Dimension] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synchronization] -GenBackupTabl=1 -GenKeepBackTabl=1 -GenTmpTablDrop=No -GenKeepTablOpts=No - -[FolderOptions\Physical Objects\Test Data] -GenDataPathName= -GenDataSinglefile=Yes -GenDataScriptName=testdata -GenDataScriptName0= -GenDataScriptName1= -GenDataScriptName2= -GenDataScriptName3= -GenDataScriptName4= -GenDataScriptName5= -GenDataScriptName6= -GenDataScriptName7= -GenDataScriptName8= -GenDataScriptName9= -GenDataOdbc=0 -GenDataDelOld=No -GenDataTitle=No -GenDataDefNumRows=20 -GenDataCommit=0 -GenDataPacket=0 -GenDataOwner=No -GenDataProfNumb= -GenDataProfChar= -GenDataProfDate= -GenDataCSVSeparator=, -GenDataFileFormat=CSV -GenDataUseWizard=No - -[FolderOptions\Pdm] -IndxIQName=%COLUMN%_%INDEXTYPE% -IndxPK=Yes -IndxFK=Yes -IndxAK=Yes -IndxPKName=%TABLE%_PK -IndxFKName=%REFR%_FK -IndxAKName=%AKEY%_AK -IndxPreserve=No -IndxThreshold=0 -IndxStats=No -RefrPreserve=No -JidxPreserve=No -RbldMultiFact=Yes -RbldMultiDim=Yes -RbldMultiJidx=Yes -CubePreserve=No -TablStProcPreserve=No -ProcDepPreserve=Yes -TrgrDepPreserve=Yes -CubeScriptPath= -CubeScriptCase=0 -CubeScriptEncoding=ANSI -CubeScriptNacct=No -CubeScriptHeader=No -CubeScriptExt=csv -CubeScriptExt0=txt -CubeScriptExt1= -CubeScriptExt2= -CubeScriptSep=, -CubeScriptDeli=" -EstimationYears=0 -DfltDomnName=D_%.U:VALUE% -DfltColnName=D_%.U:VALUE% -DfltReuse=Yes -DfltDrop=Yes -[ModelOptions] - -[ModelOptions\Physical Objects] -CaseSensitive=No -DisplayName=Yes -EnableTrans=No -UseTerm=No -EnableRequirements=No -EnableFullShortcut=Yes -DefaultDttp= -IgnoreOwner=No -RebuildTrigger=Yes -RefrUnique=No -RefrAutoMigrate=Yes -RefrMigrateReuse=Yes -RefrMigrateDomain=Yes -RefrMigrateCheck=Yes -RefrMigrateRule=Yes -RefrMigrateExtd=No -RefrMigrDefaultLink=No -RefrDfltImpl=D -RefrPrgtColn=No -RefrMigrateToEnd=No -RebuildTriggerDep=No -ColnFKName=%.3:PARENT%_%COLUMN% -ColnFKNameUse=No -DomnCopyDttp=Yes -DomnCopyChck=No -DomnCopyRule=No -DomnCopyMand=No -DomnCopyExtd=No -DomnCopyProf=No -Notation=0 -DomnDefaultMandatory=No -ColnDefaultMandatory=No -TablDefaultOwner= -ViewDefaultOwner= -TrgrDefaultOwnerTabl= -TrgrDefaultOwnerView= -IdxDefaultOwnerTabl= -IdxDefaultOwnerView= -JdxDefaultOwner= -DBPackDefaultOwner= -SeqDefaultOwner= -ProcDefaultOwner= -DBMSTrgrDefaultOwner= -Currency=USD -RefrDeleteConstraint=1 -RefrUpdateConstraint=1 -RefrParentMandatory=No -RefrParentChangeAllow=Yes -RefrCheckOnCommit=No - -[ModelOptions\Physical Objects\NamingOptionsTemplates] - -[ModelOptions\Physical Objects\ClssNamingOptions] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL] - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN] - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX] - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR] - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF] - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT] - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO] - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Connection] - -[ModelOptions\Pdm] - -[ModelOptions\Generate] - -[ModelOptions\Generate\Xsm] -GenRootElement=Yes -GenComplexType=No -GenAttribute=Yes -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=No - -[ModelOptions\Generate\Pdm] -RRMapping=No - -[ModelOptions\Generate\Cdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No -Notation=2 - -[ModelOptions\Generate\Oom] -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=Yes -ClassPrefix= - -[ModelOptions\Generate\Ldm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No - -[ModelOptions\Default Opts] - -[ModelOptions\Default Opts\TABL] -PhysOpts= - -[ModelOptions\Default Opts\COLN] -PhysOpts= - -[ModelOptions\Default Opts\INDX] -PhysOpts= - -[ModelOptions\Default Opts\AKEY] -PhysOpts= - -[ModelOptions\Default Opts\PKEY] -PhysOpts= - -[ModelOptions\Default Opts\STOR] -PhysOpts= - -[ModelOptions\Default Opts\TSPC] -PhysOpts= - -[ModelOptions\Default Opts\SQNC] -PhysOpts= - -[ModelOptions\Default Opts\DTBS] -PhysOpts= - -[ModelOptions\Default Opts\USER] -PhysOpts= - -[ModelOptions\Default Opts\JIDX] -PhysOpts= - - -85A83FDC-6500-4658-A73F-FFC617B7A7B4 -MySQL 5.0 -MYSQL50 -1562381480 -zhenghong -1562381480 -zhenghong - -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B - - - - -6F1B6D14-D5F0-4FD1-BA8F-9FF6DB6D9EFF -oms_diagram -oms_diagram -1562381480 -zhenghong -1562381675 -zhenghong -[DisplayPreferences] - -[DisplayPreferences\PDM] - -[DisplayPreferences\General] -Adjust to text=Yes -Snap Grid=No -Constrain Labels=Yes -Display Grid=No -Show Page Delimiter=Yes -Show Links intersections=Yes -Activate automatic link routing=Yes -Grid size=0 -Graphic unit=2 -Window color=255, 255, 255 -Background image= -Background mode=8 -Watermark image= -Watermark mode=8 -Show watermark on screen=No -Gradient mode=0 -Gradient end color=255, 255, 255 -Show Swimlane=No -SwimlaneVert=Yes -TreeVert=No -CompDark=0 - -[DisplayPreferences\Object] -Show Icon=No -Mode=2 -Trunc Length=40 -Word Length=40 -Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ -Shortcut IntIcon=Yes -Shortcut IntLoct=Yes -Shortcut IntFullPath=No -Shortcut IntLastPackage=Yes -Shortcut ExtIcon=Yes -Shortcut ExtLoct=No -Shortcut ExtFullPath=No -Shortcut ExtLastPackage=Yes -Shortcut ExtIncludeModl=Yes -EObjShowStrn=Yes -ExtendedObject.Comment=No -ExtendedObject.IconPicture=No -ExtendedObject.TextStyle=No -ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -ELnkShowStrn=Yes -ELnkShowName=Yes -ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> -FileObject.Stereotype=No -FileObject.DisplayName=Yes -FileObject.LocationOrName=No -FileObject.IconPicture=No -FileObject.TextStyle=No -FileObject.IconMode=Yes -FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Package.Stereotype=Yes -Package.Comment=No -Package.IconPicture=No -Package.TextStyle=No -Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Display Model Version=Yes -Table.Stereotype=Yes -Table.DisplayName=Yes -Table.OwnerDisplayName=No -Table.Columns=Yes -Table.Columns._Filter="All Columns" PDMCOLNALL -Table.Columns._Columns=Stereotype DataType KeyIndicator -Table.Columns._Limit=-5 -Table.Keys=No -Table.Keys._Columns=Stereotype Indicator -Table.Indexes=No -Table.Indexes._Columns=Stereotype -Table.Triggers=No -Table.Triggers._Columns=Stereotype -Table.Comment=No -Table.IconPicture=No -Table.TextStyle=No -Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -View.Stereotype=Yes -View.DisplayName=Yes -View.OwnerDisplayName=No -View.Columns=Yes -View.Columns._Columns=DisplayName -View.Columns._Limit=-5 -View.TemporaryVTables=Yes -View.Indexes=No -View.Comment=No -View.IconPicture=No -View.TextStyle=No -View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Procedure.Stereotype=No -Procedure.DisplayName=Yes -Procedure.OwnerDisplayName=No -Procedure.Comment=No -Procedure.IconPicture=No -Procedure.TextStyle=No -Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Reference.Cardinality=No -Reference.ImplementationType=No -Reference.ChildRole=Yes -Reference.Stereotype=Yes -Reference.DisplayName=No -Reference.ForeignKeyConstraintName=No -Reference.JoinExpression=No -Reference.Integrity=No -Reference.ParentRole=Yes -Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> -ViewReference.ChildRole=Yes -ViewReference.Stereotype=Yes -ViewReference.DisplayName=No -ViewReference.JoinExpression=No -ViewReference.ParentRole=Yes -ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> - -[DisplayPreferences\Symbol] - -[DisplayPreferences\Symbol\FRMEOBJ] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=6000 -Height=2000 -Brush color=255 255 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=64 -Brush gradient color=192 192 192 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 255 128 128 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FRMELNK] -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FILO] -OBJSTRNFont=新宋体,8,N -OBJSTRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LCNMFont=新宋体,8,N -LCNMFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=3600 -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PDMPCKG] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 178 178 178 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\TABL] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -KeysFont=新宋体,8,N -KeysFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -TriggersFont=新宋体,8,N -TriggersFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=178 214 252 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VIEW] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -TemporaryVTablesFont=新宋体,8,N -TemporaryVTablesFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=208 208 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PROC] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4000 -Height=1000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 108 0 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\REFR] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VREF] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\USRDEPD] -OBJXSTRFont=新宋体,8,N -OBJXSTRFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=2 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\Free Symbol] -Free TextFont=新宋体,8,N -Free TextFont color=0, 0, 0 -Line style=0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 -(8268, 11693) -((315,354), (433,354)) -1 -1 - - -1562381675 -1562397808 -((4698,18500), (12793,19750)) -((12393,19125),(5098,19125)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381675 -1562397806 -((4698,7839), (13182,9089)) -((12782,8464),(5098,8464)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381675 -1562397805 -((4698,-6706), (11556,-5456)) -((11156,-6081),(5098,-6081)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381675 -1562397815 -((1428,-14696), (11556,-13446)) -((11156,-14071),(1828,-14071)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381675 -1562381675 --1 -((-13782,-6681), (5098,23609)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562381675 -1562397808 --1 -((12393,12578), (27437,25672)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562381675 -1562397806 --1 -((12782,3682), (25244,10054)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381675 -1562397810 --1 -((-30359,16812), (-16739,23184)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381675 -1562397805 --1 -((11156,-24922), (27866,-440)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562381675 -1562397815 --1 -((-11406,-18855), (1828,-9287)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562381675 -1562397812 --1 -((-29748,5792), (-17674,11340)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381675 -1562397813 --1 -((-31241,-13327), (-16687,3283)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - - - - - - - - -05F2E0FD-B385-448F-AF64-C4E3E8EEF274 -oms_order -oms_order -1522658325 -zhenghong -1562381675 -zhenghong -订单表 - - - -CC6FABD2-68E1-4961-83A3-698B98B6E74C -id -id -1522658326 -zhenghong -1562381675 -zhenghong -订单id -bigint -1 -1 - - -91D4680C-21BA-466E-9966-EA09E6C0E181 -member_id -member_id -1522659209 -zhenghong -1563092963 -zhenghong -会员id -bigint -1 - - -E4D451B9-6B7B-48CE-9503-4C58D1425507 -coupon_id -coupon_id -1522724329 -zhenghong -1563092963 -zhenghong -优惠券id -bigint - - -920C29AE-7599-43D5-8CD5-C25C747F5576 -order_sn -order_sn -1522658365 -zhenghong -1562381675 -zhenghong -订单编号 -varchar(64) -64 - - -1E05F18A-A045-4DB9-9E5B-3EB4166C70B2 -create_time -create_time -1522658421 -zhenghong -1562381675 -zhenghong -提交时间 -datetime - - -7F5FEBCD-97AB-4395-BB55-A1C5441570AE -member_username -member_username -1522658628 -zhenghong -1562381675 -zhenghong -用户帐号 -varchar(64) -64 - - -04AF1E76-ECE7-4FF6-8D52-E5BC68526CB3 -total_amount -total_amount -1522658628 -zhenghong -1562381675 -zhenghong -订单总金额 -decimal(10,2) -10 -2 - - -30E97653-F338-4A1B-9485-1354262B3ACA -pay_amount -pay_amount -1535611784 -zhenghong -1562381675 -zhenghong -应付金额(实际支付金额) -decimal(10,2) -10 -2 - - -4100BFB0-E626-48B6-A3AA-C0D5B8256C82 -freight_amount -freight_amount -1522723575 -zhenghong -1562381675 -zhenghong -运费金额 -decimal(10,2) -10 -2 - - -2B4D03DD-BB33-4440-813B-422AD42C8B02 -promotion_amount -promotion_amount -1522723762 -zhenghong -1562381675 -zhenghong -促销优化金额(促销价、满减、阶梯价) -decimal(10,2) -10 -2 - - -26C92C1A-DA54-4F6C-A53B-40E4F4259611 -integration_amount -integration_amount -1522723873 -zhenghong -1562381675 -zhenghong -积分抵扣金额 -decimal(10,2) -10 -2 - - -35562C51-359C-4DAB-A2D8-09714FF68E90 -coupon_amount -coupon_amount -1522724126 -zhenghong -1562381675 -zhenghong -优惠券抵扣金额 -decimal(10,2) -10 -2 - - -3E592BC1-1122-4E3D-BFF5-3F11DD14DC2A -discount_amount -discount_amount -1522724794 -zhenghong -1562381675 -zhenghong -管理员后台调整订单使用的折扣金额 -decimal(10,2) -10 -2 - - -04A95BEE-9654-47C5-BFAE-C08B7B03986E -pay_type -pay_type -1522658684 -zhenghong -1562381675 -zhenghong -支付方式:0->未支付;1->支付宝;2->微信 -int(1) -1 - - -B2CE387C-CE10-42AE-8417-5C230E72B2A2 -source_type -source_type -1522658832 -zhenghong -1562381675 -zhenghong -订单来源:0->PC订单;1->app订单 -int(1) -1 - - -6BBF086D-BD37-4261-8D0A-48E156F4178D -status -status -1522658850 -zhenghong -1562381675 -zhenghong -订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 -int(1) -1 - - -0CA69FAC-98A2-40CF-9156-025013757821 -order_type -order_type -1522658951 -zhenghong -1562381675 -zhenghong -订单类型:0->正常订单;1->秒杀订单 -int(1) -1 - - -CC84B530-F21B-4637-B77D-FCC01753260B -delivery_company -delivery_company -1522659709 -zhenghong -1562381675 -zhenghong -物流公司(配送方式) -varchar(64) -64 - - -4617958B-B773-4ABE-B9D3-BA3F2ECA9959 -delivery_sn -delivery_sn -1522659876 -zhenghong -1562381675 -zhenghong -物流单号 -varchar(64) -64 - - -D5F1C963-1C16-4F07-9D41-4B3D114192D3 -auto_confirm_day -auto_confirm_day -1522659893 -zhenghong -1562381675 -zhenghong -自动确认时间(天) -int - - -098EFEA3-0F41-4BCF-908F-42BA9FF36D02 -integration -integration -1522660001 -zhenghong -1562381675 -zhenghong -可以获得的积分 -int - - -06648A05-B2CE-42DE-A6C9-FE3FF705349A -growth -growth -1522660001 -zhenghong -1562381675 -zhenghong -可以活动的成长值 -int - - -1220B8FB-E2A8-406D-8ED0-774E9E8028BD -promotion_info -promotion_info -1522660053 -zhenghong -1562381675 -zhenghong -活动信息 -varchar(100) -100 - - -0E3DA6A6-0CC3-4EF0-A8E4-E2ED9E74B588 -bill_type -bill_type -1522660081 -zhenghong -1562381675 -zhenghong -发票类型:0->不开发票;1->电子发票;2->纸质发票 -int(1) -1 - - -83CB8476-A5EA-4678-A8EA-C0C714E1C243 -bill_header -bill_header -1522660171 -zhenghong -1562381675 -zhenghong -发票抬头 -varchar(200) -200 - - -175CF440-C4CD-4402-B5DE-30FDB9AB22B0 -bill_content -bill_content -1522660220 -zhenghong -1562381675 -zhenghong -发票内容 -varchar(200) -200 - - -41EDB3E3-99DD-40C9-9513-15EE57F05CC8 -bill_receiver_phone -bill_receiver_phone -1522660252 -zhenghong -1562381675 -zhenghong -收票人电话 -varchar(32) -32 - - -DAAEBE92-F542-4003-842E-A730AA678BD3 -bill_receiver_email -bill_receiver_email -1522660252 -zhenghong -1562381675 -zhenghong -收票人邮箱 -varchar(64) -64 - - -DAF010AA-FB36-4C5B-9D7C-82258813D86C -receiver_name -receiver_name -1522660318 -zhenghong -1562381675 -zhenghong -收货人姓名 -varchar(100) -100 -1 - - -30355E9C-0A14-4A75-B39C-6E42FC776F4F -receiver_phone -receiver_phone -1522660394 -zhenghong -1562381675 -zhenghong -收货人电话 -varchar(32) -32 -1 - - -339FA272-4FE4-464F-B452-EE4DC7D1B1BD -receiver_post_code -receiver_post_code -1522660418 -zhenghong -1562381675 -zhenghong -收货人邮编 -varchar(32) -32 - - -79852809-C824-4F62-BDAE-3C33C9CC36D9 -receiver_province -receiver_province -1522660464 -zhenghong -1562381675 -zhenghong -省份/直辖市 -varchar(32) -32 - - -0D424974-5AA2-4F3B-8E94-231062EA361B -receiver_city -receiver_city -1522660515 -zhenghong -1562381675 -zhenghong -城市 -varchar(32) -32 - - -63624653-BBD8-49D1-89F7-240DAB8B4F3D -receiver_region -receiver_region -1522660544 -zhenghong -1562381675 -zhenghong - -varchar(32) -32 - - -BB1A2932-F624-4DD3-AC67-E4E5A4FF1B7A -receiver_detail_address -receiver_detail_address -1522660585 -zhenghong -1562381675 -zhenghong -详细地址 -varchar(200) -200 - - -A66720BE-46E0-4AB9-919B-AA302C7C3D1E -note -note -1522724892 -zhenghong -1562381675 -zhenghong -订单备注 -varchar(500) -500 - - -F0282173-586A-43AE-96D6-909F636C88B8 -confirm_status -confirm_status -1522725950 -zhenghong -1562381675 -zhenghong -确认收货状态:0->未确认;1->已确认 -int(1) -1 - - -3B6EACD5-B4ED-4422-9134-99546B5DA216 -delete_status -delete_status -1535611815 -zhenghong -1562381675 -zhenghong -删除状态:0->未删除;1->已删除 -0 -int(1) -1 -1 -{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0= -{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0= - - - - -0FA12511-D7E9-4874-9943-8EE368AC22F0 -use_integration -use_integration -1536136197 -zhenghong -1562381675 -zhenghong -下单时使用的积分 -int - - -77551E63-D1EA-437F-9400-CC1372657317 -payment_time -payment_time -1539236189 -zhenghong -1562381675 -zhenghong -支付时间 -datetime - - -8614E6F9-FF99-41C4-B10B-3A29C0A60FE7 -delivery_time -delivery_time -1539236207 -zhenghong -1562381675 -zhenghong -发货时间 -datetime - - -A55B20AC-0DE5-459E-AB76-EF2B349D6CE9 -receive_time -receive_time -1539236247 -zhenghong -1562381675 -zhenghong -确认收货时间 -datetime - - -AFDD5891-534B-41AE-9CDF-F43FD8AE3041 -comment_time -comment_time -1539236349 -zhenghong -1562381675 -zhenghong -评价时间 -datetime - - -98C5503C-4A7C-4F0A-BD15-C2D84E4EA761 -modify_time -modify_time -1539236409 -zhenghong -1562381675 -zhenghong -修改时间 -datetime - - - - -8C9DDBFE-111E-4ACD-81DE-82E41F986260 -Key_1 -Key_1 -1522658326 -zhenghong -1562381675 -zhenghong - - - - - - - - - - -B55E3CF8-134D-4C26-95B4-E98BE7D4CDF7 -oms_order_item -oms_order_item -1522660695 -zhenghong -1562381675 -zhenghong -订单中所包含的商品 - - - -400803C1-7D76-4997-ABEC-40A6B7234919 -id -id -1522660696 -zhenghong -1562381675 -zhenghong -bigint -1 -1 - - -0E8C9492-691F-4A34-929D-7C332373E266 -order_id -order_id -1522660753 -zhenghong -1562381675 -zhenghong -订单id -bigint - - -2C47D43E-8599-4628-9B5A-3EEC3B98F816 -order_sn -order_sn -1522660755 -zhenghong -1562381675 -zhenghong -订单编号 -varchar(64) -64 - - -384A037E-415F-4ACE-886B-63B251ECA1F2 -product_id -product_id -1522660820 -zhenghong -1563093255 -zhenghong -商品id -bigint - - -FE352F6A-0FF5-4550-BF80-66C847E577B0 -product_pic -product_pic -1522719518 -zhenghong -1563093255 -zhenghong -商品图片 -varchar(500) -500 - - -155C38B5-310C-4853-93E0-CB3BEC8E766E -product_name -product_name -1522719518 -zhenghong -1563093255 -zhenghong -商品名称 -varchar(200) -200 - - -E9F2CFF1-FA41-4BF6-854F-778867433137 -product_brand -product_brand -1522719571 -zhenghong -1563093255 -zhenghong -商品品牌 -varchar(200) -200 - - -52048F93-1FB9-472C-BE53-112B7086FC2F -product_sn -product_sn -1522719571 -zhenghong -1563093255 -zhenghong -商品条码 -varchar(64) -64 - - -6B47018E-4488-481D-B6D5-AC3D5EBFE79D -product_price -product_price -1522719571 -zhenghong -1562381675 -zhenghong -销售价格 -decimal(10,2) -10 -2 - - -73C1E1EB-6236-4011-9ED2-7DC3B954D21F -product_quantity -product_quantity -1522723168 -zhenghong -1562381675 -zhenghong -购买数量 -int - - -7EA813A5-F467-4F6D-8539-98C88785C67B -product_sku_id -product_sku_id -1535693972 -zhenghong -1562381675 -zhenghong -商品sku编号 -bigint - - -3EBA8CA0-A054-44BB-81E1-51574A9A3F54 -product_sku_code -product_sku_code -1535693972 -zhenghong -1562381675 -zhenghong -商品sku条码 -varchar(50) -50 - - -681FC1FA-F367-410F-9F23-DBE9738F8529 -product_category_id -product_category_id -1535938231 -zhenghong -1562381675 -zhenghong -商品分类id -bigint - - -333436E6-B44F-4992-BB0A-27990BD8EBF8 -sp1 -sp1 -1522724687 -zhenghong -1563093255 -zhenghong -商品的销售属性1 -varchar(100) -100 - - -C80F1C92-EC80-43DD-89F8-C8CC1FA70795 -sp2 -sp2 -1522724687 -zhenghong -1563093255 -zhenghong -商品的销售属性2 -varchar(100) -100 - - -1D65DC8E-E676-4C2D-927C-5918F6B878FA -sp3 -sp3 -1522724687 -zhenghong -1563093255 -zhenghong -商品的销售属性3 -varchar(100) -100 - - -01BE75F4-E877-4410-936E-9EF1BE19D54D -promotion_name -promotion_name -1535694274 -zhenghong -1562381675 -zhenghong -商品促销名称 -varchar(200) -200 - - -7B7ADD4D-5E48-44C6-83AD-FB9C32438878 -promotion_amount -promotion_amount -1535694166 -zhenghong -1562381675 -zhenghong -商品促销分解金额 -decimal(10,2) -10 -2 - - -F56C1E34-4DF5-48B3-BBA5-4661EE3274A1 -coupon_amount -coupon_amount -1535694274 -zhenghong -1562381675 -zhenghong -优惠券优惠分解金额 -decimal(10,2) -10 -2 - - -E0A5498C-12FC-4E5D-8B59-7A4480B43252 -integration_amount -integration_amount -1535694826 -zhenghong -1562381675 -zhenghong -积分优惠分解金额 -decimal(10,2) -10 -2 - - -F2B44252-2061-4230-9336-1F7DC40AE04F -real_amount -real_amount -1522724652 -zhenghong -1562381675 -zhenghong -该商品经过优惠后的分解金额 -decimal(10,2) -10 -2 - - -72BE685C-5B09-44DF-8E50-26D896C3C178 -gift_integration -gift_integration -1535964164 -zhenghong -1562381675 -zhenghong -商品赠送积分 -0 -int -1 - - -3731F605-C569-4AB3-A652-ED6087C0D54B -gift_growth -gift_growth -1535964164 -zhenghong -1562381675 -zhenghong -商品赠送成长值 -0 -int -1 - - -21AA985F-31C9-4ED1-A239-B65ADFD6EBFD -product_attr -product_attr -1540542610 -zhenghong -1562381675 -zhenghong -商品销售属性:[{"key":"颜色","value":"颜色"},{"key":"容量","value":"4G"}] -varchar(500) -500 - - - - -D009AAC9-2955-4F6D-92E3-CDC215401C65 -Key_1 -Key_1 -1522660696 -zhenghong -1562381675 -zhenghong - - - - - - - - - - -7C6513B0-793C-428D-B7EC-CEFDF02FA529 -oms_order_operate_history -oms_order_operate_history -1522724973 -zhenghong -1563093407 -zhenghong -订单操作记录表 - - - -4C4EF9D3-8271-4FD1-BE5D-3B8A8A6F436F -id -id -1522724975 -zhenghong -1562381675 -zhenghong -bigint -1 -1 - - -CA0AED7D-6764-4EC0-9512-8B475C70962B -order_id -order_id -1522725331 -zhenghong -1562381675 -zhenghong -订单id -bigint - - -16A4E289-0B19-4E8D-87CC-C6F47ACE7771 -operate_man -operate_man -1522725011 -zhenghong -1562381675 -zhenghong -操作人:用户;系统;后台管理员 -varchar(100) -100 - - -5DC6F697-1915-4B72-987F-A98DFBD57497 -create_time -create_time -1522725037 -zhenghong -1562381675 -zhenghong -操作时间 -datetime - - -A19E2E2C-5F48-4DCA-8B62-50AC6EA3479A -order_status -order_status -1522725072 -zhenghong -1562381675 -zhenghong -订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 -int(1) -1 - - -88967D31-DDC0-4977-8C3A-7EED1BFF240D -note -note -1522725292 -zhenghong -1562381675 -zhenghong -备注 -varchar(500) -500 - - - - -F815B6F8-07C7-4543-90D0-ABD355C4F443 -Key_1 -Key_1 -1522724975 -zhenghong -1562381675 -zhenghong - - - - - - - - - - -62EB68AB-A496-4DB7-BBD9-D44E762DEA0E -oms_order_setting -oms_order_setting -1522726076 -zhenghong -1562381675 -zhenghong -订单设置表 - - - -FDD7C6FF-D977-4B6C-902C-F44E85FDAEA7 -id -id -1522726077 -zhenghong -1562381675 -zhenghong -bigint -1 -1 - - -31BA6EB8-0F95-4F9D-985D-7D068A04A21D -flash_order_overtime -flash_order_overtime -1522726101 -zhenghong -1562381675 -zhenghong -秒杀订单超时关闭时间(分) -int - - -187815AB-CCCD-4665-93F0-C17BF46E264A -normal_order_overtime -normal_order_overtime -1522726150 -zhenghong -1562381675 -zhenghong -正常订单超时时间(分) -int - - -772EEBB3-36BD-4135-81C9-7DF0A0BF34EA -confirm_overtime -confirm_overtime -1522726177 -zhenghong -1562381675 -zhenghong -发货后自动确认收货时间(天) -int - - -AB06F2A1-8B18-4EBE-A361-6F58CD8E6C8A -finish_overtime -finish_overtime -1522731908 -zhenghong -1562381675 -zhenghong -自动完成交易时间,不能申请售后(天) -int - - -76F4A9E9-5273-466F-8DB0-6197C04354DB -comment_overtime -comment_overtime -1522731929 -zhenghong -1562381675 -zhenghong -订单完成后自动好评时间(天) -int - - - - -1A1E7CBA-EE11-44F5-9A68-F360D1E2CE98 -Key_1 -Key_1 -1522726077 -zhenghong -1562381675 -zhenghong - - - - - - - - - - -7D3CC4E4-7455-45E5-8065-A2028FF2E3A5 -oms_order_return_apply -oms_order_return_apply -1522732897 -zhenghong -1562381675 -zhenghong -订单退货申请 - - - -7AD9DB4E-E190-4AB0-94D7-426A4CF8B8AF -id -id -1522732898 -zhenghong -1562381675 -zhenghong -bigint -1 -1 - - -55127A15-4FE7-432D-8A76-F34A9E93F09A -order_id -order_id -1522733188 -zhenghong -1562381675 -zhenghong -订单id -bigint - - -1985D6F4-E669-44B3-AA82-2BB8C611F9A7 -company_address_id -company_address_id -1522745521 -zhenghong -1562381675 -zhenghong -收货地址表id -bigint - - -CEB2639B-BA9A-47D2-80FD-10D5067F1BD8 -product_id -product_id -1539746524 -zhenghong -1562381675 -zhenghong -退货商品id -bigint - - -EC8BC226-6E7B-4A44-A001-E0C79DA89DC1 -order_sn -order_sn -1522733452 -zhenghong -1562381675 -zhenghong -订单编号 -varchar(64) -64 - - -B8DF8A42-EFD3-4DDE-84AB-7552425125BD -create_time -create_time -1522732939 -zhenghong -1562381675 -zhenghong -申请时间 -datetime - - -0028F51F-DAC6-45DE-9DA9-D7C847348500 -member_username -member_username -1522732939 -zhenghong -1562381675 -zhenghong -会员用户名 -varchar(64) -64 - - -A0076956-8A09-4E97-B189-E4086DCFC6BB -return_amount -return_amount -1522732939 -zhenghong -1562381675 -zhenghong -退款金额 -decimal(10,2) -10 -2 - - -D83B982A-DF77-436B-B75C-0E18C879281B -return_name -return_name -1522733003 -zhenghong -1562381675 -zhenghong -退货人姓名 -varchar(100) -100 - - -3B576757-2FAD-48E7-92FD-7ED111E0E27B -return_phone -return_phone -1522733468 -zhenghong -1562381675 -zhenghong -退货人电话 -varchar(100) -100 - - -EB03D2D4-5D29-461C-9D4C-7E1929D2CB6F -status -status -1522733003 -zhenghong -1562381675 -zhenghong -申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝 -int(1) -1 - - -362CCBD1-E322-4878-A849-4C4E0F646171 -handle_time -handle_time -1522733003 -zhenghong -1562381675 -zhenghong -处理时间 -datetime - - -E0914F74-7E7B-4388-B30C-13329F1A2E4A -product_pic -product_pic -1522733217 -zhenghong -1562381675 -zhenghong -商品图片 -varchar(500) -500 - - -AB53AB9B-3D9C-4DD2-B8F2-76451F6F4B52 -product_name -product_name -1522733217 -zhenghong -1562381675 -zhenghong -商品名称 -varchar(200) -200 - - -E0855E20-C525-4E88-80C1-0CBDB0AF540D -product_brand -product_brand -1522733217 -zhenghong -1562381675 -zhenghong -商品品牌 -varchar(200) -200 - - -01E64477-9C46-42DC-9EE5-BE2C6A4F4A9E -product_attr -product_attr -1522733217 -zhenghong -1562381675 -zhenghong -商品销售属性:颜色:红色;尺码:xl; -varchar(500) -500 - - -0C175326-1B9B-4FD6-8CE7-4C10987A9147 -product_count -product_count -1522733332 -zhenghong -1562381675 -zhenghong -退货数量 -int - - -FF85320D-B54E-4197-B3B0-BAFA03126C33 -product_price -product_price -1539746095 -zhenghong -1562381675 -zhenghong -商品单价 -decimal(10,2) -10 -2 - - -DC06D270-00E4-489D-B0BF-07827C35245B -product_real_price -product_real_price -1539746095 -zhenghong -1562381675 -zhenghong -商品实际支付单价 -decimal(10,2) -10 -2 - - -DA73C543-6C21-40EB-AA65-5BC9877181EB -reason -reason -1522733512 -zhenghong -1562381675 -zhenghong -原因 -varchar(200) -200 - - -2711D6ED-9CB1-44C2-A6C6-DE4EF633CAC1 -description -description -1522733512 -zhenghong -1562381675 -zhenghong -描述 -varchar(500) -500 - - -E22AC0D2-EEDA-442F-B91F-CBB420953862 -proof_pics -proof_pics -1522733653 -zhenghong -1562381675 -zhenghong -凭证图片,以逗号隔开 -varchar(1000) -1000 - - -27A9B553-49EB-4C90-841A-23BEC6599513 -handle_note -handle_note -1522745027 -zhenghong -1562381675 -zhenghong -处理备注 -varchar(500) -500 - - -C40E6176-B0F9-43FE-8144-B4193CA8FB8C -handle_man -handle_man -1522745592 -zhenghong -1562381675 -zhenghong -处理人员 -varchar(100) -100 - - -043838BE-8448-4F68-9550-4008E585EA87 -receive_man -receive_man -1522745613 -zhenghong -1562381675 -zhenghong -收货人 -varchar(100) -100 - - -DAF72EEE-D688-4F23-967A-2E9DDE783D99 -receive_time -receive_time -1522745652 -zhenghong -1562381675 -zhenghong -收货时间 -datetime - - -1E001249-2B8B-45B0-B901-419E7EEB4454 -receive_note -receive_note -1522745652 -zhenghong -1562381675 -zhenghong -收货备注 -varchar(500) -500 - - - - -5339803E-D343-4823-98CA-0752B4974322 -Key_1 -Key_1 -1522732898 -zhenghong -1562381675 -zhenghong - - - - - - - - - - -D57E45A9-0A84-4905-8EE7-F4353CF2E854 -oms_company_address -oms_company_address -1522745162 -zhenghong -1562381675 -zhenghong -公司收发货地址表 - - - -8AC5D554-19F2-4C7E-A7D8-A10CEE9A43EA -id -id -1522745164 -zhenghong -1562381675 -zhenghong -bigint -1 -1 - - -A33CC5AA-D3C1-485F-864F-6A4411680007 -address_name -address_name -1522745192 -zhenghong -1562381675 -zhenghong -地址名称 -varchar(200) -200 - - -14285DB5-DDC0-44E9-97C4-573F08473889 -send_status -send_status -1522745248 -zhenghong -1562381675 -zhenghong -默认发货地址:0->否;1->是 -int(1) -1 - - -54F057A4-6E22-49EF-8AA5-2E144C292BF3 -receive_status -receive_status -1522745248 -zhenghong -1562381675 -zhenghong -是否默认收货地址:0->否;1->是 -int(1) -1 - - -940ACCA7-2B97-44A9-8A1D-336D7E7D8B4F -name -name -1522745285 -zhenghong -1562381675 -zhenghong -收发货人姓名 -varchar(64) -64 - - -4C116C7B-7E2D-4864-A19D-AE90E1E95875 -phone -phone -1522745285 -zhenghong -1562381675 -zhenghong -收货人电话 -varchar(64) -64 - - -51E76878-E2A8-4B93-ABCB-11BF8CECB047 -province -province -1522745363 -zhenghong -1562381675 -zhenghong -省/直辖市 -varchar(64) -64 - - -D132A1B4-233E-4AAB-80DA-2160B96F97F6 -city -city -1522745363 -zhenghong -1562381675 -zhenghong - -varchar(64) -64 - - -5A4A8715-C918-4F08-925A-96CAB4CC0222 -region -region -1522745363 -zhenghong -1562381675 -zhenghong - -varchar(64) -64 - - -254B2406-5C1B-4594-9669-52E56081DF79 -detail_address -detail_address -1539745108 -zhenghong -1562381675 -zhenghong -详细地址 -varchar(200) -200 - - - - -57206BB2-79EB-479B-9102-8E428AEBDD21 -Key_1 -Key_1 -1522745164 -zhenghong -1562381675 -zhenghong - - - - - - - - - - -770A75E5-0DE5-4E14-BD94-C145B8C65F04 -oms_order_return_reason -oms_order_return_reason -1522745726 -zhenghong -1562381675 -zhenghong -退货原因表 - - - -16E95A5E-9CF7-4E60-B465-8566C5FCF7B3 -id -id -1522745728 -zhenghong -1562381675 -zhenghong -bigint -1 -1 - - -52A7135D-7CDB-4C40-AE3C-60E6D64F8F41 -name -name -1522745760 -zhenghong -1562381675 -zhenghong -退货类型 -varchar(100) -100 - - -8CE96E09-81B6-4ABB-9BF1-32072C14EE8A -sort -sort -1522745760 -zhenghong -1562381675 -zhenghong -int - - -E45F9B6F-89F1-466D-9171-D81DD90FBF2C -status -status -1522745760 -zhenghong -1562381675 -zhenghong -状态:0->不启用;1->启用 -int(1) -1 - - -DDC2CC40-5D3E-492D-9D20-41E80621F7BE -create_time -create_time -1539238773 -zhenghong -1562381675 -zhenghong -添加时间 -datetime - - - - -03525D98-CE5D-439A-9235-D257F9FCDE7C -Key_1 -Key_1 -1522745728 -zhenghong -1562381675 -zhenghong - - - - - - - - - - -FCFACDD5-C94C-4DA7-815A-1FB465075DD6 -oms_cart_item -oms_cart_item -1533108597 -zhenghong -1562381675 -zhenghong -购物车表 - - - -5F27D4CB-D6C2-43F1-BE3D-99BE2235B13A -id -id -1533108649 -zhenghong -1562381675 -zhenghong -bigint -1 -1 - - -FCBA4E8B-46A6-466A-88BE-91ADDB6704FE -product_id -product_id -1533109970 -zhenghong -1563587563 -zhenghong -商品的id -bigint - - -4A6ABE9F-E1AB-4170-888B-B6A956AD2975 -product_sku_id -product_sku_id -1533115829 -zhenghong -1563587563 -zhenghong -商品sku的id -bigint - - -31DF0F1B-6C7A-4C36-A417-9427294A125A -member_id -member_id -1533115896 -zhenghong -1563587563 -zhenghong -会员id -bigint - - -9009F419-DC07-4988-827C-BE0354515B37 -quantity -quantity -1533108721 -zhenghong -1562381675 -zhenghong -购买数量 -int - - -B2ED78FE-58F7-4836-B117-C77D46579737 -price -price -1533108747 -zhenghong -1562381675 -zhenghong -添加到购物车的价格 -decimal(10,2) -10 -2 - - -0CDED37F-2AB2-4494-9AE2-149C2861C329 -sp1 -sp1 -1533108782 -zhenghong -1562381675 -zhenghong -销售属性1 -varchar(200) -200 - - -38CAB922-C9FF-42CE-9CFF-1F7E0196A923 -sp2 -sp2 -1533108782 -zhenghong -1562381675 -zhenghong -销售属性2 -varchar(200) -200 - - -EF409C83-0FFB-4F79-A972-67DC4889622C -sp3 -sp3 -1533108782 -zhenghong -1562381675 -zhenghong -销售属性3 -varchar(200) -200 - - -3807990D-DF0D-485D-9D2B-9D24DA439DA0 -product_pic -product_pic -1533110160 -zhenghong -1562381675 -zhenghong -商品主图 -varchar(1000) -1000 - - -84FD3CD9-309E-4AC3-8D7D-39630720F59E -product_name -product_name -1533110160 -zhenghong -1562381675 -zhenghong -商品名称 -varchar(500) -500 - - -DDD49000-B725-43FA-9F61-1B72791C66F7 -product_brand -product_brand -1535696251 -zhenghong -1563587563 -zhenghong -商品品牌 -varchar(200) -200 - - -408C91C7-39A9-400D-B825-664332CE4B33 -product_sn -product_sn -1535696251 -zhenghong -1563587563 -zhenghong -商品的条码 -varchar(200) -200 - - -083C0B8F-B185-4655-867F-9F44315DB955 -product_sub_title -product_sub_title -1533110160 -zhenghong -1562381675 -zhenghong -商品副标题(卖点) -varchar(500) -500 - - -5E5016BC-1FC0-4289-BF3C-93CF5B9C000B -product_sku_code -product_sku_code -1533115799 -zhenghong -1562381675 -zhenghong -商品sku条码 -varchar(200) -200 - - -9DCEB06B-30DF-45D3-A205-CB32ADD7C7A6 -member_nickname -member_nickname -1533115939 -zhenghong -1562381675 -zhenghong -会员昵称 -varchar(500) -500 - - -63632865-2AFA-4C21-9D66-FB4A05403D58 -create_date -create_date -1533116034 -zhenghong -1562381675 -zhenghong -创建时间 -datetime - - -4C0CAA10-68A5-4BFF-A069-EE1181A21563 -modify_date -modify_date -1533116034 -zhenghong -1562381675 -zhenghong -修改时间 -datetime - - -861494F6-3512-4836-8AC4-1CE80CC49802 -delete_status -delete_status -1533172423 -zhenghong -1562381675 -zhenghong -是否删除 -0 -int(1) -1 - - -AC3D49DF-810F-4D3F-9B4F-91773DABAB3F -product_category_id -product_category_id -1535530934 -zhenghong -1562381675 -zhenghong -商品的分类 -bigint - - -30DE6365-38F8-4093-A108-EDBEC519540C -product_attr -product_attr -1540542323 -zhenghong -1562381675 -zhenghong -商品销售属性:[{"key":"颜色","value":"银色"},{"key":"容量","value":"4G"}] -varchar(500) -500 - - - - -59CD260B-BD26-4D4C-AA07-A1608781723C -Key_1 -Key_1 -1533108649 -zhenghong -1562381675 -zhenghong - - - - - - - - - - - - -BDC03AB1-ADC4-4677-8B61-887E334F8D5D -Reference_58 -Reference_58 -1522660753 -zhenghong -1522660753 -zhenghong -0..* -1 -1 - - - - - - - - - - - -B0DECA2C-A904-49E4-8D94-3005805D0D82 -1522660753 -zhenghong -1522660753 -zhenghong - - - - - - - - - - -AEE77F49-1552-45AD-B18B-D95BCFC6A732 -Reference_62 -Reference_62 -1522725331 -zhenghong -1522725331 -zhenghong -0..* -1 -1 - - - - - - - - - - - -738FF6F3-1973-48BA-8B7F-72BAAB68E441 -1522725331 -zhenghong -1522725331 -zhenghong - - - - - - - - - - -474704AE-724C-4A91-A376-D5057DB320E9 -Reference_63 -Reference_63 -1522733188 -zhenghong -1522733188 -zhenghong -0..* -1 -1 - - - - - - - - - - - -66100669-D07C-4D89-BD57-63E98DA6CB07 -1522733188 -zhenghong -1522733188 -zhenghong - - - - - - - - - - -87BF9107-DBF4-4ECD-AD45-6089805FBE78 -Reference_64 -Reference_64 -1522745521 -zhenghong -1522745521 -zhenghong -0..* -1 -1 - - - - - - - - - - - -3BC1F227-FEDD-4BF9-9BD5-7EA5246B9DAB -1522745521 -zhenghong -1522745521 -zhenghong - - - - - - - - - - - - -4AE9D351-FD95-4DBC-9EAB-0D1CC1AA9E2D -PUBLIC -PUBLIC -1562381480 -zhenghong -1562381480 -zhenghong - - - - -1BAD0FE4-029F-4C0A-B208-B34EBE0E7FB3 -MySQL 5.0 -MYSQL50 -1562381480 -zhenghong -1562381480 -zhenghong -file:///%_DBMS%/mysql50.xdb -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B -1276524678 - - - - - - - - - - \ No newline at end of file diff --git a/document/pdm/mall_pms.pdm b/document/pdm/mall_pms.pdm deleted file mode 100644 index 86e552e3..00000000 --- a/document/pdm/mall_pms.pdm +++ /dev/null @@ -1,5773 +0,0 @@ - - - - - - - - - -ED6E09D8-E6BD-416E-B8C9-92CD7B7E725F -mall_pms -mall_pms -1562380871 -zhenghong -1562675624 -zhenghong -[FolderOptions] - -[FolderOptions\Physical Objects] -GenerationCheckModel=Yes -GenerationPath= -GenerationOptions= -GenerationTasks= -GenerationTargets= -GenerationSelections= -RevPkey=Yes -RevFkey=Yes -RevAkey=Yes -RevCheck=Yes -RevIndx=Yes -RevOpts=Yes -RevViewAsTabl=No -RevViewOpts=Yes -RevSystAsTabl=Yes -RevTablPerm=No -RevViewPerm=No -RevProcPerm=No -RevDbpkPerm=No -RevSqncPerm=No -RevAdtPerm=No -RevUserPriv=No -RevUserOpts=No -RevGrpePriv=No -RevRolePriv=No -RevDtbsOpts=Yes -RevDtbsPerm=No -RevViewIndx=Yes -RevJidxOpts=Yes -RevStats=No -RevTspcPerm=No -RevCaseSensitive=No -GenTrgrStdMsg=Yes -GenTrgrMsgTab= -GenTrgrMsgNo= -GenTrgrMsgTxt= -TrgrPreserve=No -TrgrIns=Yes -TrgrUpd=Yes -TrgrDel=Yes -TrgrC2Ins=Yes -TrgrC2Upd=Yes -TrgrC3=Yes -TrgrC4=Yes -TrgrC5=Yes -TrgrC6=Yes -TrgrC7=Yes -TrgrC8=Yes -TrgrC9=Yes -TrgrC10=Yes -TrgrC11=Yes -TrgrC1=Yes -TrgrC12Ins=Yes -TrgrC12Upd=Yes -TrgrC13=Yes -UpdateTableStatistics=Yes -UpdateColumnStatistics=Yes - -[FolderOptions\Physical Objects\Database Generation] -GenScriptName=crebas -GenScriptName0= -GenScriptName1= -GenScriptName2= -GenScriptName3= -GenScriptName4= -GenScriptName5= -GenScriptName6= -GenScriptName7= -GenScriptName8= -GenScriptName9= -GenPathName= -GenSingleFile=Yes -GenODBC=No -GenCheckModel=Yes -GenScriptPrev=Yes -GenArchiveModel=No -GenUseSync=No -GenSyncChoice=0 -GenSyncArch= -GenSyncRmg=0 - -[FolderOptions\Physical Objects\Database Generation\Format] -GenScriptTitle=Yes -GenScriptNamLabl=No -GenScriptQDtbs=No -GenScriptQOwnr=Yes -GenScriptCase=0 -GenScriptEncoding=ANSI -GenScriptNAcct=No -IdentifierDelimiter=" - -[FolderOptions\Physical Objects\Database Generation\Database] -Create=Yes -Open=Yes -Close=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Database\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Tablespace] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Storage] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\User] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\User\Create] -Physical Options=No - -[FolderOptions\Physical Objects\Database Generation\Group] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\Role] -Create=Yes -Drop=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] -Default value=Yes -Check=Yes - -[FolderOptions\Physical Objects\Database Generation\AbstractDataType] -Create=Yes -Header=Yes -Footer=Yes -Drop=Yes -Comment=Yes -Install JAVA class=Yes -Remove JAVA class=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Rule] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Default] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Sequence] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] -Check=Yes -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] -User datatype=No -Default value=Yes -Check=Yes -Physical Options=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] -Constraint declaration=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] -Constraint declaration=Yes -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] -Primary key=No -Foreign key=No -Alternate key=No -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\View] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\View\Create] -Force Column list=No -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] -Table=Yes -View=Yes -Proc=Yes -Synonym=Yes -Database Package=Yes -Sequence=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Procedure] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Procedure\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\DatabasePackage] -Create=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\WebService] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Dimension] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synchronization] -GenBackupTabl=1 -GenKeepBackTabl=1 -GenTmpTablDrop=No -GenKeepTablOpts=No - -[FolderOptions\Physical Objects\Test Data] -GenDataPathName= -GenDataSinglefile=Yes -GenDataScriptName=testdata -GenDataScriptName0= -GenDataScriptName1= -GenDataScriptName2= -GenDataScriptName3= -GenDataScriptName4= -GenDataScriptName5= -GenDataScriptName6= -GenDataScriptName7= -GenDataScriptName8= -GenDataScriptName9= -GenDataOdbc=0 -GenDataDelOld=No -GenDataTitle=No -GenDataDefNumRows=20 -GenDataCommit=0 -GenDataPacket=0 -GenDataOwner=No -GenDataProfNumb= -GenDataProfChar= -GenDataProfDate= -GenDataCSVSeparator=, -GenDataFileFormat=CSV -GenDataUseWizard=No - -[FolderOptions\Pdm] -IndxIQName=%COLUMN%_%INDEXTYPE% -IndxPK=Yes -IndxFK=Yes -IndxAK=Yes -IndxPKName=%TABLE%_PK -IndxFKName=%REFR%_FK -IndxAKName=%AKEY%_AK -IndxPreserve=No -IndxThreshold=0 -IndxStats=No -RefrPreserve=No -JidxPreserve=No -RbldMultiFact=Yes -RbldMultiDim=Yes -RbldMultiJidx=Yes -CubePreserve=No -TablStProcPreserve=No -ProcDepPreserve=Yes -TrgrDepPreserve=Yes -CubeScriptPath= -CubeScriptCase=0 -CubeScriptEncoding=ANSI -CubeScriptNacct=No -CubeScriptHeader=No -CubeScriptExt=csv -CubeScriptExt0=txt -CubeScriptExt1= -CubeScriptExt2= -CubeScriptSep=, -CubeScriptDeli=" -EstimationYears=0 -DfltDomnName=D_%.U:VALUE% -DfltColnName=D_%.U:VALUE% -DfltReuse=Yes -DfltDrop=Yes -[ModelOptions] - -[ModelOptions\Physical Objects] -CaseSensitive=No -DisplayName=Yes -EnableTrans=No -UseTerm=No -EnableRequirements=No -EnableFullShortcut=Yes -DefaultDttp= -IgnoreOwner=No -RebuildTrigger=Yes -RefrUnique=No -RefrAutoMigrate=Yes -RefrMigrateReuse=Yes -RefrMigrateDomain=Yes -RefrMigrateCheck=Yes -RefrMigrateRule=Yes -RefrMigrateExtd=No -RefrMigrDefaultLink=No -RefrDfltImpl=D -RefrPrgtColn=No -RefrMigrateToEnd=No -RebuildTriggerDep=No -ColnFKName=%.3:PARENT%_%COLUMN% -ColnFKNameUse=No -DomnCopyDttp=Yes -DomnCopyChck=No -DomnCopyRule=No -DomnCopyMand=No -DomnCopyExtd=No -DomnCopyProf=No -Notation=0 -DomnDefaultMandatory=No -ColnDefaultMandatory=No -TablDefaultOwner= -ViewDefaultOwner= -TrgrDefaultOwnerTabl= -TrgrDefaultOwnerView= -IdxDefaultOwnerTabl= -IdxDefaultOwnerView= -JdxDefaultOwner= -DBPackDefaultOwner= -SeqDefaultOwner= -ProcDefaultOwner= -DBMSTrgrDefaultOwner= -Currency=USD -RefrDeleteConstraint=1 -RefrUpdateConstraint=1 -RefrParentMandatory=No -RefrParentChangeAllow=Yes -RefrCheckOnCommit=No - -[ModelOptions\Physical Objects\NamingOptionsTemplates] - -[ModelOptions\Physical Objects\ClssNamingOptions] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL] - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN] - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX] - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR] - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF] - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT] - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO] - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Connection] - -[ModelOptions\Pdm] - -[ModelOptions\Generate] - -[ModelOptions\Generate\Xsm] -GenRootElement=Yes -GenComplexType=No -GenAttribute=Yes -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=No - -[ModelOptions\Generate\Pdm] -RRMapping=No - -[ModelOptions\Generate\Cdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No -Notation=2 - -[ModelOptions\Generate\Oom] -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=Yes -ClassPrefix= - -[ModelOptions\Generate\Ldm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No - -[ModelOptions\Default Opts] - -[ModelOptions\Default Opts\TABL] -PhysOpts= - -[ModelOptions\Default Opts\COLN] -PhysOpts= - -[ModelOptions\Default Opts\INDX] -PhysOpts= - -[ModelOptions\Default Opts\AKEY] -PhysOpts= - -[ModelOptions\Default Opts\PKEY] -PhysOpts= - -[ModelOptions\Default Opts\STOR] -PhysOpts= - -[ModelOptions\Default Opts\TSPC] -PhysOpts= - -[ModelOptions\Default Opts\SQNC] -PhysOpts= - -[ModelOptions\Default Opts\DTBS] -PhysOpts= - -[ModelOptions\Default Opts\USER] -PhysOpts= - -[ModelOptions\Default Opts\JIDX] -PhysOpts= - - -7ECC5F1B-F010-4CBE-B2A2-C58B65F930AF -MySQL 5.0 -MYSQL50 -1562380870 -zhenghong -1562380870 -zhenghong - -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B - - - - -C66FC48B-6094-4F6B-927D-FAA19A9FCF81 -pms_diagram -pms_diagram -1562380871 -zhenghong -1562381580 -zhenghong -[DisplayPreferences] - -[DisplayPreferences\PDM] - -[DisplayPreferences\General] -Adjust to text=Yes -Snap Grid=No -Constrain Labels=Yes -Display Grid=No -Show Page Delimiter=Yes -Show Links intersections=Yes -Activate automatic link routing=Yes -Grid size=0 -Graphic unit=2 -Window color=255, 255, 255 -Background image= -Background mode=8 -Watermark image= -Watermark mode=8 -Show watermark on screen=No -Gradient mode=0 -Gradient end color=255, 255, 255 -Show Swimlane=No -SwimlaneVert=Yes -TreeVert=No -CompDark=0 - -[DisplayPreferences\Object] -Show Icon=No -Mode=2 -Trunc Length=40 -Word Length=40 -Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ -Shortcut IntIcon=Yes -Shortcut IntLoct=Yes -Shortcut IntFullPath=No -Shortcut IntLastPackage=Yes -Shortcut ExtIcon=Yes -Shortcut ExtLoct=No -Shortcut ExtFullPath=No -Shortcut ExtLastPackage=Yes -Shortcut ExtIncludeModl=Yes -EObjShowStrn=Yes -ExtendedObject.Comment=No -ExtendedObject.IconPicture=No -ExtendedObject.TextStyle=No -ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -ELnkShowStrn=Yes -ELnkShowName=Yes -ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> -FileObject.Stereotype=No -FileObject.DisplayName=Yes -FileObject.LocationOrName=No -FileObject.IconPicture=No -FileObject.TextStyle=No -FileObject.IconMode=Yes -FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Package.Stereotype=Yes -Package.Comment=No -Package.IconPicture=No -Package.TextStyle=No -Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Display Model Version=Yes -Table.Stereotype=Yes -Table.DisplayName=Yes -Table.OwnerDisplayName=No -Table.Columns=Yes -Table.Columns._Filter="All Columns" PDMCOLNALL -Table.Columns._Columns=Stereotype DataType KeyIndicator -Table.Columns._Limit=-5 -Table.Keys=No -Table.Keys._Columns=Stereotype Indicator -Table.Indexes=No -Table.Indexes._Columns=Stereotype -Table.Triggers=No -Table.Triggers._Columns=Stereotype -Table.Comment=No -Table.IconPicture=No -Table.TextStyle=No -Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -View.Stereotype=Yes -View.DisplayName=Yes -View.OwnerDisplayName=No -View.Columns=Yes -View.Columns._Columns=DisplayName -View.Columns._Limit=-5 -View.TemporaryVTables=Yes -View.Indexes=No -View.Comment=No -View.IconPicture=No -View.TextStyle=No -View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Procedure.Stereotype=No -Procedure.DisplayName=Yes -Procedure.OwnerDisplayName=No -Procedure.Comment=No -Procedure.IconPicture=No -Procedure.TextStyle=No -Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Reference.Cardinality=No -Reference.ImplementationType=No -Reference.ChildRole=Yes -Reference.Stereotype=Yes -Reference.DisplayName=No -Reference.ForeignKeyConstraintName=No -Reference.JoinExpression=No -Reference.Integrity=No -Reference.ParentRole=Yes -Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> -ViewReference.ChildRole=Yes -ViewReference.Stereotype=Yes -ViewReference.DisplayName=No -ViewReference.JoinExpression=No -ViewReference.ParentRole=Yes -ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> - -[DisplayPreferences\Symbol] - -[DisplayPreferences\Symbol\FRMEOBJ] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=6000 -Height=2000 -Brush color=255 255 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=64 -Brush gradient color=192 192 192 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 255 128 128 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FRMELNK] -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FILO] -OBJSTRNFont=新宋体,8,N -OBJSTRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LCNMFont=新宋体,8,N -LCNMFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=3600 -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PDMPCKG] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 178 178 178 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\TABL] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -KeysFont=新宋体,8,N -KeysFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -TriggersFont=新宋体,8,N -TriggersFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=178 214 252 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VIEW] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -TemporaryVTablesFont=新宋体,8,N -TemporaryVTablesFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=208 208 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PROC] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4000 -Height=1000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 108 0 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\REFR] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VREF] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\USRDEPD] -OBJXSTRFont=新宋体,8,N -OBJXSTRFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=2 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\Free Symbol] -Free TextFont=新宋体,8,N -Free TextFont color=0, 0, 0 -Line style=0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 -(8268, 11693) -((315,354), (433,354)) -1 -1 - - -1562381174 -1562397877 -((5318,-12322), (12118,-11072)) -((5718,-11697),(11718,-11697)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397874 -((5318,-5635), (12455,10791)) -((12055,10391),(12055,-5010),(5718,-5010)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397830 -((-20146,-10651), (-13682,-9401)) -((-19746,-10026),(-14082,-10026)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397828 -((-20512,-912), (-13682,338)) -((-20112,-287),(-14082,-287)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397875 -((5318,1150), (12755,2400)) -((5718,1775),(12355,1775)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397834 -((-25423,-16634), (-13682,-15384)) -((-14082,-16009),(-25023,-16009)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397843 -((-13886,-40113), (-3557,-33298)) -((-13486,-39713),(-4182,-39713),(-4182,-33698)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397841 -((-25967,-33723), (-13682,-32473)) -((-25567,-33098),(-14082,-33098)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397838 -((-25881,-27513), (-13682,-26263)) -((-25481,-26888),(-14082,-26888)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397887 -((27187,-34109), (29235,-22353)) -((28835,-33709),(28835,-22978),(27587,-22978)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397882 -((5318,-23603), (14753,-22353)) -((5718,-22978),(14353,-22978)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397885 -((5318,-30636), (13032,-29386)) -((12632,-30011),(5718,-30011)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397887 -((19783,-34109), (21033,-31973)) -((20408,-32373),(20408,-33709)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397875 -((18379,-5410), (26603,3076)) -((18779,-3210),(18779,-5010),(25803,-5010),(25803,2451),(25203,2451)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N -4 - - - - - - - - - - - -1562381174 -1562397875 -((8079,-42485), (12755,3601)) -((8479,-42085),(8479,2976),(12355,2976)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562494016 -((16021,-44709), (19721,-43459)) -((16421,-44084),(19321,-44084)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562381371 -((-4807,1976), (-3557,4225)) -((-4182,3825),(-4182,2376)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562397866 -((407,17961), (1657,21294)) -((1032,20894),(1032,18361)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562381174 -1562381334 -((-28084,8640), (-12593,18897)) -((-12993,17225),(-12993,9040),(-27459,9040),(-27459,18497)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N -4 - - - - - - - - - - - -1562381174 -1562381175 --1 -((-14082,-33698), (5718,2376)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397877 --1 -((11718,-16946), (27656,-6448)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -Table.Stereotype 1 -Table.DisplayName 1 -Table.OwnerDisplayName 0 -Table.Columns 1 -5 "All Columns" PDMCOLNALL Stereotype DataType KeyIndicator -Table.Keys 0 0 "" "" Stereotype Indicator -Table.Indexes 0 0 "" "" Stereotype -Table.Triggers 0 0 "" "" Stereotype -Table.Comment 0 - - - - - -1562381174 -1562397874 --1 -((11603,10391), (25609,22539)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397830 --1 -((-31820,-13212), (-19746,-6840)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397828 --1 -((-35664,-5948), (-20112,5374)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397875 --1 -((12355,-3210), (25203,8112)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397834 --1 -((-39029,-23296), (-25023,-15274)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397843 --1 -((-28266,-42487), (-13486,-36939)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397841 --1 -((-37641,-35931), (-25567,-30383)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397838 --1 -((-38329,-29250), (-25481,-24526)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562397882 --1 -((14353,-25340), (27587,-20617)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562494016 --1 -((19321,-46199), (38349,-33709)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562381174 -1562397885 --1 -((12632,-32373), (28184,-27650)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562381390 --1 -((-445,-46084), (16421,-42085)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562381174 -1562381371 --1 -((-5221,3825), (7285,18361)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562381174 -1562397866 --1 -((-4569,20894), (7879,28744)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562381174 -1562381333 --1 -((-33690,12125), (-21228,18497)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562381174 -1562381334 --1 -((-18644,13226), (-7342,17225)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - - - - - - - - -F3F51C15-30B1-4B4F-B588-037A027C79F4 -pms_product -pms_product -1521705853 -zhenghong -1562381175 -zhenghong -商品信息 - - - -C0E454BF-E58D-495A-8765-822B8B374734 -id -id -1521705876 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -92E3C8FC-CCAA-4965-BC08-91BCDAAF9E73 -brand_id -brand_id -1521706257 -zhenghong -1563086917 -zhenghong -品牌id -bigint - - -5E4C5975-276C-441E-9D71-719E7DA9C062 -product_category_id -product_category_id -1521773101 -zhenghong -1563086917 -zhenghong -品牌分类id -bigint - - -4F7AD1F3-7F2B-4373-9FDB-9994D9F13410 -feight_template_id -feight_template_id -1521783613 -zhenghong -1563086917 -zhenghong -运费模版id -bigint - - -2E6C2742-9361-47CF-AD21-409635A3C072 -product_attribute_category_id -product_attribute_category_id -1522046100 -zhenghong -1563086917 -zhenghong -品牌属性分类id -bigint - - -C11A9FF0-E78E-42E7-87F6-74C260654B69 -name -name -1521705899 -zhenghong -1563086917 -zhenghong -商品名称 -varchar(64) -64 -1 - - -7C62E024-6C2D-43EA-831D-F6732EAF2740 -pic -pic -1521705899 -zhenghong -1563086917 -zhenghong -图片 -varchar(255) -255 - - -AACE3F67-7992-4FFB-95B0-44BE2118166F -product_sn -product_sn -1521706312 -zhenghong -1562381175 -zhenghong -货号 -varchar(64) -64 -1 - - -0A783893-49D3-47DB-8003-E664610699CB -delete_status -delete_status -1521773185 -zhenghong -1562381175 -zhenghong -删除状态:0->未删除;1->已删除 -int(1) -1 - - -04660680-3435-40A5-AEE6-FE7A1C98A517 -publish_status -publish_status -1521706416 -zhenghong -1562381175 -zhenghong -上架状态:0->下架;1->上架 -int(1) -1 - - -3493F6FB-34EF-44C6-B66B-A225B31E1386 -new_status -new_status -1521708193 -zhenghong -1562381175 -zhenghong -新品状态:0->不是新品;1->新品 -int(1) -1 - - -29704A3C-A62A-4673-BEE8-00C8EFC71B09 -recommand_status -recommand_status -1521708193 -zhenghong -1562381175 -zhenghong -推荐状态;0->不推荐;1->推荐 -int(1) -1 - - -1F936E82-1E1B-43B5-BF64-4523430B707D -verify_status -verify_status -1521710674 -zhenghong -1562381175 -zhenghong -审核状态:0->未审核;1->审核通过 -int(1) -1 - - -8D23D579-A220-4B6D-83A1-A1E2765D96BB -sort -sort -1521708381 -zhenghong -1562381175 -zhenghong -排序 -int - - -5813DAE6-DFE1-4247-A274-602D28801F90 -sale -sale -1521710587 -zhenghong -1562381175 -zhenghong -销量 -int - - -EC840136-B4DC-4B21-9337-0C39A7A66949 -price -price -1521706312 -zhenghong -1563086917 -zhenghong -价格 -decimal(10,2) -10 -2 - - -30DBFD9C-50BE-4214-A5A2-5D887202F08D -promotion_price -promotion_price -1521770729 -zhenghong -1562381175 -zhenghong -促销价格 -decimal(10,2) -10 -2 - - -801D0F05-1BB3-47AA-BE95-2962EB44CEFB -gift_growth -gift_growth -1527561524 -zhenghong -1562381175 -zhenghong -赠送的成长值 -0 -int - - -A3B04C4B-77E3-4157-99B7-6AF06AE27398 -gift_point -gift_point -1521771016 -zhenghong -1562381175 -zhenghong -赠送的积分 -0 -int - - -54A4D2E7-CFB6-4EBF-BAD5-2F99E0DC88B2 -use_point_limit -use_point_limit -1521771103 -zhenghong -1562381175 -zhenghong -限制使用的积分数 -int - - -2A5A1C9A-3353-48FF-9F8C-D60B88F500C9 -sub_title -sub_title -1521773700 -zhenghong -1562381175 -zhenghong -副标题 -varchar(255) -255 - - -ADAF2D32-1AA4-4751-A61D-E83CA2868C0D -description -description -1521774517 -zhenghong -1562381175 -zhenghong -商品描述 -text - - -A60123F5-3219-4FC0-A16A-8D97DEDF2F9B -original_price -original_price -1521775224 -zhenghong -1562381175 -zhenghong -市场价 -decimal(10,2) -10 -2 - - -26CA099A-DEDF-4F19-A840-F09F53346659 -stock -stock -1521775417 -zhenghong -1562381175 -zhenghong -库存 -int - - -4D8AF9A8-5082-4473-A178-19DB359CC9ED -low_stock -low_stock -1521775417 -zhenghong -1562381175 -zhenghong -库存预警值 -int - - -D1BE1DBC-F738-4385-B170-66EA589B90C7 -unit -unit -1521775486 -zhenghong -1562381175 -zhenghong -单位 -varchar(16) -16 - - -7F2EDC17-D1E2-497B-9A1B-DC3396959C04 -weight -weight -1521775567 -zhenghong -1562381175 -zhenghong -商品重量,默认为克 -decimal(10,2) -10 -2 - - -CE8F31F7-8517-40EC-9EDC-A9D71B69B059 -preview_status -preview_status -1521782409 -zhenghong -1562381175 -zhenghong -是否为预告商品:0->不是;1->是 -int(1) -1 - - -002A5428-CED4-44BA-958C-6A29F461CAFE -service_ids -service_ids -1521783875 -zhenghong -1562381175 -zhenghong -以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮 -varchar(64) -64 - - -2DA104CC-7AD3-412E-9205-B4A877C32B6E -keywords -keywords -1521784236 -zhenghong -1563086917 -zhenghong -关键字 -varchar(255) -255 - - -C866CA54-CF8E-4FC5-A391-BA27323EEEB9 -note -note -1521784236 -zhenghong -1563086917 -zhenghong -备注 -varchar(255) -255 - - -FF59870A-E62A-43CB-A639-3D511BD19716 -album_pics -album_pics -1522046916 -zhenghong -1562381175 -zhenghong -画册图片,连产品图片限制为5张,以逗号分割 -varchar(255) -255 - - -1FBE2E81-0C6E-4445-BF03-3718E495DCB7 -detail_title -detail_title -1521784236 -zhenghong -1563086917 -zhenghong -详情标题 -varchar(255) -255 - - -C66C9465-3237-465C-8882-9D48A545FFA9 -detail_desc -detail_desc -1521784236 -zhenghong -1563086917 -zhenghong -详情描述 -text - - -822C0368-EDF0-4261-81B8-39A057A3AC16 -detail_html -detail_html -1522047002 -zhenghong -1562381175 -zhenghong -产品详情网页内容 -text - - -674F842C-1A77-4ACA-BB37-2B5C8816CAEA -detail_mobile_html -detail_mobile_html -1522047022 -zhenghong -1562381175 -zhenghong -移动端网页详情 -text - - -16318375-AB64-4F77-AC9F-4ECDFC7C1CCA -promotion_start_time -promotion_start_time -1522721079 -zhenghong -1562381175 -zhenghong -促销开始时间 -datetime - - -8B074107-7AA8-4717-9F69-5E8A6C3E917E -promotion_end_time -promotion_end_time -1522721096 -zhenghong -1562381175 -zhenghong -促销结束时间 -datetime - - -119DB9FE-4DFA-4A34-A474-60A3BC106FCD -promotion_per_limit -promotion_per_limit -1522721333 -zhenghong -1562381175 -zhenghong -活动限购数量 -int - - -B079E33F-2A76-4165-B68F-223414FAA1BC -promotion_type -promotion_type -1522721953 -zhenghong -1562381175 -zhenghong -促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购 -int(1) -1 - - -9A703BF7-944F-49D8-A005-9AD3315C71E1 -product_category_name -product_category_name -1524810975 -zhenghong -1562381175 -zhenghong -产品分类名称 -varchar(255) -255 - - -47CF7C10-CEAE-45DD-B613-0630AD1CEDBE -brand_name -brand_name -1524811003 -zhenghong -1562381175 -zhenghong -品牌名称 -varchar(255) -255 - - - - -D8ADED0C-75E4-4952-B74E-1509E3BD0359 -Key_1 -Key_1 -1521705876 -zhenghong -1562381175 -zhenghong - - - - - - - -4897D1FB-F5D9-4B2F-9762-14DAB1D47CAD -index_name -index_name -1521771497 -zhenghong -1562381175 -zhenghong - - -B17ADC78-7793-4BFF-AD2A-0F81670D029B -1521771542 -zhenghong -1562381175 -zhenghong - - - - - - - -13131CEC-5DA0-4EFB-B0E1-891482669DC3 -index_product_sn -index_product_sn -1521771497 -zhenghong -1562381175 -zhenghong -1 - - -A298798E-7A62-47C7-8CEE-5AC2E864C5D1 -1521771579 -zhenghong -1562381175 -zhenghong - - - - - - - - - - - - -0A386E6F-DB25-49F8-A8A9-8372C61C7453 -pms_brand -pms_brand -1521706107 -zhenghong -1562381175 -zhenghong -品牌表 - - - -190A58E6-55A6-459E-A76C-DCB8C23941FE -id -id -1521706123 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -D3F63C35-ED91-4F7D-98C0-AA324F89B52A -name -name -1521706148 -zhenghong -1562678679 -zhenghong -名称 -varchar(64) -64 - - -EF89BB26-B9FC-46A2-95E3-4EF87A7AF1F8 -first_letter -first_letter -1522116447 -zhenghong -1562381175 -zhenghong -首字母 -varchar(8) -8 - - -A02D9BEE-A5F2-4609-B53D-7005524288CD -sort -sort -1522116482 -zhenghong -1562678679 -zhenghong -排序 -int - - -BDB8FE96-ABA9-44CC-9EB0-7DF3A4802520 -factory_status -factory_status -1522116482 -zhenghong -1562381175 -zhenghong -是否为品牌制造商:0->不是;1->是 -int(1) -1 - - -4CBAAD2D-12F9-4C9A-9416-5084A696B939 -show_status -show_status -1522116540 -zhenghong -1562678679 -zhenghong -是否显示 -int(1) -1 - - -94C84F69-C993-4ED6-A068-7C7DF510C0D8 -product_count -product_count -1522116540 -zhenghong -1562381175 -zhenghong -产品数量 -int - - -153D6EE9-C8D7-45F8-99A7-6FB7415A91B6 -product_comment_count -product_comment_count -1522116540 -zhenghong -1562381175 -zhenghong -产品评论数量 -int - - -EEE86855-7AE4-4BA8-8CC2-1B6928F2B355 -logo -logo -1522116540 -zhenghong -1562381175 -zhenghong -品牌logo -varchar(255) -255 - - -F00FA2EA-CC11-48C4-9DB4-A24C8D4E08E9 -big_pic -big_pic -1522116540 -zhenghong -1562381175 -zhenghong -专区大图 -varchar(255) -255 - - -A124EA11-7358-4889-8BA8-EA2CF9A5814A -brand_story -brand_story -1522116540 -zhenghong -1562381175 -zhenghong -品牌故事 -text - - - - -9E2518F9-2A0F-47EF-864D-4214E6AE9CBF -Key_1 -Key_1 -1521706123 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -9DAFE7AD-FBC9-45D4-9EAD-8AB0A4729535 -pms_sku_stock -pms_sku_stock -1521709482 -zhenghong -1563087874 -zhenghong -商品的sku - - - -D3CBBCB7-49EF-4E93-A5BC-2EB62E2E8529 -id -id -1521709484 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -DEDA90B1-6203-4A54-A830-C259B085870D -product_id -product_id -1521710488 -zhenghong -1563087224 -zhenghong -商品id -bigint - - -AA572F0D-8D76-4438-B281-05B1CA8C3B1A -sku_code -sku_code -1521709695 -zhenghong -1562381175 -zhenghong -sku编码 -varchar(64) -64 -1 - - -1B2C3CCB-BE2F-4E83-92F8-BD7FBB3D98B7 -price -price -1521709829 -zhenghong -1563087224 -zhenghong -价格 -decimal(10,2) -10 -2 - - -BE1BBD90-9274-4E92-9056-0AB695B357F2 -stock -stock -1521709829 -zhenghong -1562381175 -zhenghong -库存 -0 -int - - -250A85F2-46FC-421E-9332-599CD85B8130 -low_stock -low_stock -1521709829 -zhenghong -1562381175 -zhenghong -预警库存 -int - - -ED876C8F-DEC2-4ACE-9A4D-52537300FC26 -sp1 -sp1 -1521709963 -zhenghong -1563087224 -zhenghong -规格属性1 -varchar(64) -64 - - -0DA76E2B-0415-4A1E-A23A-2A87A368AAAB -sp2 -sp2 -1521709963 -zhenghong -1563087224 -zhenghong -规格属性2 -varchar(64) -64 - - -831B501F-9D5C-40EA-9673-7E1C2695AB40 -sp3 -sp3 -1521709963 -zhenghong -1563087224 -zhenghong -规格属性3 -varchar(64) -64 - - -50E0DBFC-8DDB-4464-8980-7F5EE9C77527 -pic -pic -1521710423 -zhenghong -1562381175 -zhenghong -展示图片 -varchar(255) -255 - - -28A7E887-23B8-443D-ACAA-9117A17246C0 -sale -sale -1521710565 -zhenghong -1562381175 -zhenghong -销量 -int - - -A07925B6-F7CD-4B22-9BA2-F3CEAFFD6208 -promotion_price -promotion_price -1534927833 -zhenghong -1562381175 -zhenghong -单品促销价格 -decimal(10,2) -10 -2 - - -25D9C883-9BC1-49B0-9FE5-55014CA2E6A0 -lock_stock -lock_stock -1534927865 -zhenghong -1562381175 -zhenghong -锁定库存 -0 -int - - - - -F9C7500F-F268-415F-9FF6-40180D497BA7 -Key_1 -Key_1 -1521709484 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -EE88FD8B-C48A-4816-BA64-56D94618157F -pms_product_vertify_record -pms_product_vertify_record -1521710820 -zhenghong -1562381175 -zhenghong -商品审核记录 - - - -CB4E4615-5715-4DF4-B9DA-ED10DB2E1AD3 -id -id -1521710821 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -99D853A6-64F4-4E86-858E-B33D3499D457 -product_id -product_id -1521770349 -zhenghong -1563087079 -zhenghong -商品id -bigint - - -FFAFA7CE-236B-464B-A6CA-5310C4B458D0 -create_time -create_time -1521710821 -zhenghong -1563087079 -zhenghong -创建时间 -datetime - - -4399E51B-124C-42A7-9C09-7A2E55718140 -vertify_man -vertify_man -1521710821 -zhenghong -1562381175 -zhenghong -审核人 -varchar(64) -64 - - -03EA1F94-5A60-4E25-B085-31596E827F09 -status -status -1521710821 -zhenghong -1562381175 -zhenghong -审核后的状态:0->未通过;2->已通过 -int(1) -1 - - -5D3B934D-DAE3-4CCD-9686-0D1E4F045FC3 -detail -detail -1521710821 -zhenghong -1562381175 -zhenghong -反馈详情 -varchar(255) -255 - - - - -8A343516-E7C5-4B46-AAAC-287DDD226B91 -Key_1 -Key_1 -1521710821 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -221A4CDA-F009-4294-B48C-3369A0849002 -pms_product_operate_log -pms_product_operate_log -1521770649 -zhenghong -1562381175 -zhenghong - - - -0F0BF19A-BAF9-4969-8D1B-01CEE8FFA5A1 -id -id -1521770770 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -CC984007-6624-4C30-B203-16368DC60F72 -product_id -product_id -1521771362 -zhenghong -1563087174 -zhenghong -商品id -bigint - - -2CD00C2E-5603-43FF-9FE8-8AAC19FB4F6F -price_old -price_old -1521770804 -zhenghong -1563087174 -zhenghong -改变前价格 -decimal(10,2) -10 -2 - - -B8B46044-3D8B-4228-A0F9-1C4C829AF83B -price_new -price_new -1521770804 -zhenghong -1563087174 -zhenghong -改变后价格 -decimal(10,2) -10 -2 - - -F9A40832-0CEE-4251-B4C7-BDDB1055F118 -sale_price_old -sale_price_old -1521770804 -zhenghong -1563087174 -zhenghong -改变前优惠价 -decimal(10,2) -10 -2 - - -A2FAF1E6-6AE8-4560-BCCE-2C5A952A0B34 -sale_price_new -sale_price_new -1521770804 -zhenghong -1563087174 -zhenghong -改变后优惠价 -decimal(10,2) -10 -2 - - -E2BEDC64-8C5A-4184-9AE3-DBD65C3E1DBB -gift_point_old -gift_point_old -1521770804 -zhenghong -1563087174 -zhenghong -改变前积分 -int - - -94AFB285-BF41-43DB-9270-B0406A70C3A0 -gift_point_new -gift_point_new -1521770804 -zhenghong -1563087174 -zhenghong -改变后积分 -int - - -E8827D9C-CADF-4A06-A073-60AF62163637 -use_point_limit_old -use_point_limit_old -1521771164 -zhenghong -1563087174 -zhenghong -改变前积分使用限制 -int - - -994F0DCF-3201-4D91-B30E-334CF5FD2186 -use_point_limit_new -use_point_limit_new -1521771164 -zhenghong -1563087174 -zhenghong -改变后积分使用限制 -int - - -0B401F78-7BDF-4EF8-8B1A-9F29695CFCFB -operate_man -operate_man -1521771246 -zhenghong -1562381175 -zhenghong -操作人 -varchar(64) -64 - - -6AEA16E5-6D19-4951-AFB7-90BE03A0D6C7 -create_time -create_time -1521771269 -zhenghong -1563087174 -zhenghong -创建时间 -datetime - - - - -2B6281E1-8B9B-4A58-A41F-5850F995921A -Key_1 -Key_1 -1521770770 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -94F08516-E595-4277-BA66-1200060DC81C -pms_product_category -pms_product_category -1521773028 -zhenghong -1562381175 -zhenghong -产品分类 - - - -73571842-757B-45F2-AE14-539E690B4187 -id -id -1521773048 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -57C437D7-6CFD-48BE-B960-4B674C06C730 -parent_id -parent_id -1522114406 -zhenghong -1562675714 -zhenghong -上级分类的编号:0表示一级分类 -bigint - - -197F07E8-2801-4D93-B9E3-866D53230103 -name -name -1521773064 -zhenghong -1562675714 -zhenghong -名称 -varchar(64) -64 - - -261FAA05-56F5-4309-86C2-DB461505AAAB -level -level -1522114959 -zhenghong -1562381175 -zhenghong -分类级别:0->1级;1->2级 -int(1) -1 - - -C71586EF-95E3-418C-BA43-64C9C2AB7CC6 -product_count -product_count -1522115030 -zhenghong -1562675714 -zhenghong -商品数量 -int - - -DC0EE1CE-7729-4D4A-81B7-0E006E5BCE96 -product_unit -product_unit -1522115030 -zhenghong -1562675714 -zhenghong -商品单位 -varchar(64) -64 - - -1F521CF8-39B2-4C99-AFC6-30DCECC37227 -nav_status -nav_status -1522115030 -zhenghong -1562381175 -zhenghong -是否显示在导航栏:0->不显示;1->显示 -int(1) -1 - - -F2AE3B55-87C2-4E5A-84D3-E356E26BEBA6 -show_status -show_status -1522115145 -zhenghong -1562381175 -zhenghong -显示状态:0->不显示;1->显示 -int(1) -1 - - -7657B4A0-E790-4B30-9D70-31FC31B8FA6D -sort -sort -1522115178 -zhenghong -1562675714 -zhenghong -排序 -int - - -2AC24C62-CB7B-4732-96D9-B0028F99AAE3 -icon -icon -1522115323 -zhenghong -1562381175 -zhenghong -图标 -varchar(255) -255 - - -22840BFE-7B9D-4993-AC0B-CF634E593F74 -keywords -keywords -1522115588 -zhenghong -1562675714 -zhenghong -关键字 -varchar(255) -255 - - -14AF2C26-D2A5-46A8-B04D-94779DF7997B -description -description -1522115588 -zhenghong -1562381175 -zhenghong -描述 -text - - - - -F74E3300-18BA-4AED-986E-96C770E46DE4 -Key_1 -Key_1 -1521773048 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -D91307F9-A556-4A11-AEA6-AF78F02D7059 -pms_feight_template -pms_feight_template -1521782818 -zhenghong -1562381175 -zhenghong -运费模版 - - - -E7989698-51D3-44A3-B35C-3996913D9124 -id -id -1521783117 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -4FCE3539-5C85-4B16-83DA-417495BE2CCC -name -name -1521783135 -zhenghong -1563087061 -zhenghong -名称 -varchar(64) -64 - - -3CE4DCC7-076D-4EB4-B80E-3294B2496054 -charge_type -charge_type -1521783135 -zhenghong -1562381175 -zhenghong -计费类型:0->按重量;1->按件数 -int(1) -1 - - -044D06B8-0C31-41A9-8202-CCAB33D0717D -first_weight -first_weight -1521783270 -zhenghong -1562381175 -zhenghong -首重kg -decimal(10,2) -10 -2 - - -A6B1DDB7-4D51-45D6-A35A-7EC3F7EA8471 -first_fee -first_fee -1521783270 -zhenghong -1562381175 -zhenghong -首费(元) -decimal(10,2) -10 -2 - - -5EBDA6E4-2944-483C-AA18-D151110B976C -continue_weight -continue_weight -1521783270 -zhenghong -1563087061 -zhenghong -续重 -decimal(10,2) -10 -2 - - -BC733641-4E0F-4A06-A820-7C241577CF0F -continme_fee -continme_fee -1521783270 -zhenghong -1563087061 -zhenghong -续重费用 -decimal(10,2) -10 -2 - - -36BD4082-653D-4591-9DC0-8C1EC1C9E96F -dest -dest -1521783270 -zhenghong -1562381175 -zhenghong -目的地(省、市) -varchar(255) -255 - - - - -2773EB5C-51F1-46D3-A375-E8C9EFF18A7D -Key_1 -Key_1 -1521783117 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -6DC254B8-5F2F-49C3-A821-6DE149B1A5D0 -pms_member_price -pms_member_price -1521791032 -zhenghong -1562381175 -zhenghong -商品会员价格表 - - - -53B517F0-EBFD-4326-A24F-B0F797DBA9A0 -id -id -1521791069 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -4E811846-ECE6-4B69-88EE-239F532ED53D -product_id -product_id -1521791466 -zhenghong -1563086968 -zhenghong -商品id -bigint - - -34D3C5CF-3AA2-477A-843C-BF3D37C402A3 -member_level_id -member_level_id -1522721755 -zhenghong -1563086968 -zhenghong -会员等级id -bigint - - -60E84A50-89C5-4B7E-B989-0E5A94B16119 -member_price -member_price -1522721615 -zhenghong -1562381175 -zhenghong -会员价格 -decimal(10,2) -10 -2 - - -820D947D-DED3-4C5A-A291-FF2A4D9B3186 -member_level_name -member_level_name -1528184129 -zhenghong -1563086968 -zhenghong -会员等级名称 -varchar(100) -100 - - - - -FB8A3E19-E65E-48D7-9DF0-8BA62F7A7845 -Key_1 -Key_1 -1521791069 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -93A95FE7-5A58-45F1-935E-F97BB7E902F8 -pms_product_ladder -pms_product_ladder -1521791865 -zhenghong -1563087583 -zhenghong -商品阶梯价格表(只针对同商品) - - - -2868FC52-B1A4-43B6-8ABF-E0D6AF8C2308 -id -id -1521792127 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -B2416E66-7D74-4209-8D69-79C509DB65FE -product_id -product_id -1521792428 -zhenghong -1563086982 -zhenghong -商品id -bigint - - -9E337AE9-F3D2-486C-8166-B3D605526EFB -count -count -1521792148 -zhenghong -1562381175 -zhenghong -满足的商品数量 -int - - -EA922DD5-B7E9-4B3C-A316-00F4F176F13E -discount -discount -1521792164 -zhenghong -1562381175 -zhenghong -折扣 -decimal(10,2) -10 -2 - - -64D77622-AB23-479B-8481-E6A3F3DD4DBE -price -price -1521792219 -zhenghong -1562381175 -zhenghong -折后价格 -decimal(10,2) -10 -2 - - - - -1E99244A-A13A-4E8D-A4F7-982D15566660 -Key_1 -Key_1 -1521792127 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -710D1389-0418-4B58-A280-8BA886314E97 -pms_product_full_reduction -pms_product_full_reduction -1521791901 -zhenghong -1563087615 -zhenghong -商品满减表(只针对同商品) - - - -9153C3E8-793D-4163-B0DB-67BD74F6CB02 -id -id -1521792488 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -F78D9E04-E891-4FEC-9BF4-1F09F9D11F99 -product_id -product_id -1521792909 -zhenghong -1563087018 -zhenghong -商品id -bigint - - -929A2B42-8036-49B8-B277-995F4EBBC10C -full_price -full_price -1521792498 -zhenghong -1563087018 -zhenghong -商品满足金额 -decimal(10,2) -10 -2 - - -1D146A62-B3B4-4D1E-841B-5DA435D7F563 -reduce_price -reduce_price -1521792498 -zhenghong -1563087018 -zhenghong -商品减少金额 -decimal(10,2) -10 -2 - - - - -B99110FD-47AC-4D45-80DF-E686E1B37B0F -Key_1 -Key_1 -1521792488 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -A966CDCF-6EE4-4335-A444-4AD5B7D28FCC -pms_product_attribute_category -pms_product_attribute_category -1522044163 -zhenghong -1562381175 -zhenghong -产品属性分类表 - - - -E51353D9-5D7E-48D8-B7BF-7968CF3479AE -id -id -1522044196 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -B4A08BDF-053A-4540-87FA-60C04E3D0CF2 -name -name -1522044211 -zhenghong -1562381175 -zhenghong -varchar(64) -64 - - -FEAA9217-3EEE-49DD-A2F2-42B0F176A48E -attribute_count -attribute_count -1522044211 -zhenghong -1562381175 -zhenghong -属性数量 -int - - -9FF50C01-FE47-4259-BFD6-DE856904D62E -param_count -param_count -1522044211 -zhenghong -1562381175 -zhenghong -参数数量 -int - - - - -EF05F924-985E-46FB-8887-B617771BE805 -Key_1 -Key_1 -1522044527 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -F31D60DB-D982-46CF-A274-EA4D5DEAF736 -pms_product_attribute -pms_product_attribute -1522044465 -zhenghong -1562381175 -zhenghong -商品属性参数表 - - - -77C353F2-3CFF-48EC-8BF8-9DDC7AE1421D -id -id -1522044502 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -746F9D10-C6F0-4E16-A713-FCD39F0D2722 -product_attribute_category_id -product_attribute_category_id -1522045168 -zhenghong -1562381175 -zhenghong -bigint - - -2BC43B5D-7B3E-478D-9D75-E7705EF3364C -name -name -1522044544 -zhenghong -1562381175 -zhenghong -varchar(64) -64 - - -DAB6E2E0-B281-482F-93F1-EF981E070C56 -select_type -select_type -1522044544 -zhenghong -1562381175 -zhenghong -属性选择类型:0->唯一;1->单选;2->多选;对应属性和参数意义不同; -int(1) -1 - - -FFC1EAE9-8BE3-41E1-9618-34C1D2B046EF -input_type -input_type -1522044628 -zhenghong -1562381175 -zhenghong -属性录入方式:0->手工录入;1->从列表中选取 -int(1) -1 - - -225C0124-63A0-4184-A87E-99580A63BE8B -input_list -input_list -1522044737 -zhenghong -1562381175 -zhenghong -可选值列表,以逗号隔开 -varchar(255) -255 - - -F700621A-9644-4C07-A3B2-9E851D7E1E2A -sort -sort -1522044833 -zhenghong -1562381175 -zhenghong -排序字段:最高的可以单独上传图片 -int - - -7F8D38C8-7787-4392-8B53-57E9CF8DA161 -filter_type -filter_type -1522044833 -zhenghong -1562381175 -zhenghong -分类筛选样式:1->普通;1->颜色 -int(1) -1 - - -BDF7BA5D-DDDD-41B5-A6C1-3DA73341CDE1 -search_type -search_type -1522045233 -zhenghong -1562381175 -zhenghong -检索类型;0->不需要进行检索;1->关键字检索;2->范围检索 -int(1) -1 - - -9FDBBDD3-08CA-4D83-81F1-867663F910C2 -related_status -related_status -1522045363 -zhenghong -1562381175 -zhenghong -相同属性产品是否关联;0->不关联;1->关联 -int(1) -1 - - -CD617EF1-16FA-48C9-AE50-7AB28BEC6BCA -hand_add_status -hand_add_status -1522045453 -zhenghong -1562381175 -zhenghong -是否支持手动新增;0->不支持;1->支持 -int(1) -1 - - -DD31FA54-739B-4DD4-9BB3-292FE40831B3 -type -type -1522045781 -zhenghong -1562381175 -zhenghong -属性的类型;0->规格;1->参数 -int(1) -1 - - - - -EC304438-9644-40E5-BCA9-29B55D1EF8F8 -Key_1 -Key_1 -1522044517 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -FA6162C1-26CD-4758-B44B-418B57522A71 -pms_product_attribute_value -pms_product_attribute_value -1522046351 -zhenghong -1562381175 -zhenghong -存储产品参数信息的表 - - - -A5E06AC7-E162-4EC8-A8F3-9A241A47CE43 -id -id -1522046392 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -53C49259-B1FA-4499-A4C4-754896AF31BD -product_id -product_id -1522046451 -zhenghong -1562381175 -zhenghong -bigint - - -1840B93B-CD96-4237-BAA1-343A612AD272 -product_attribute_id -product_attribute_id -1522046456 -zhenghong -1562381175 -zhenghong -bigint - - -6AF891C0-0F69-43E5-B385-23452077FA3F -value -value -1522046406 -zhenghong -1562381175 -zhenghong -手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开 -varchar(64) -64 - - - - -D83CD2D0-8FA1-45B5-AAC3-7991FCBBAB36 -Key_1 -Key_1 -1522046392 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -5CF25643-2EC4-45A5-95F7-CDC4A98F0E2D -pms_product_category_attribute_relation -pms_product_category_attribute_relation -1522115893 -zhenghong -1562680401 -zhenghong -产品的分类和属性的关系表,用于设置分类筛选条件(只支持二级分类) - - - -0EA674AC-176A-4A3E-84B7-5E247D68F781 -id -id -1522115894 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -8F92464F-9391-4D70-A25B-425FFAB4C5AA -product_category_id -product_category_id -1522115961 -zhenghong -1562381175 -zhenghong -bigint - - -0D605702-43C0-40BF-8516-5BE5E2B2C2D9 -product_attribute_id -product_attribute_id -1522115983 -zhenghong -1562381175 -zhenghong -bigint - - - - -F97B9CDD-7541-4C56-B1F1-E55559AE79E9 -Key_1 -Key_1 -1522115894 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -7D48866B-E7F3-476E-9F89-2C54DFCD5180 -pms_comment -pms_comment -1522118136 -zhenghong -1562381175 -zhenghong -商品评价表 - - - -943ED24A-28B7-4A67-990A-04A26A99DED5 -id -id -1522118175 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -CA643659-8747-483F-BA49-0055B337A3DA -product_id -product_id -1522118676 -zhenghong -1563087807 -zhenghong -商品id -bigint - - -EDDB40F5-0BAE-492E-951D-D4B38A57EC4C -member_nick_name -member_nick_name -1522118254 -zhenghong -1563087807 -zhenghong -会员昵称 -varchar(255) -255 - - -8212D170-39D4-4B9F-AA35-C7D7209E8767 -product_name -product_name -1522118254 -zhenghong -1563087807 -zhenghong -商品名称 -varchar(255) -255 - - -A65ABEBE-EB99-4E00-A116-3E301FFAE866 -star -star -1522118296 -zhenghong -1562381175 -zhenghong -评价星数:0->5 -int(3) -3 - - -6612AA93-8B5C-458E-840B-9C0ADEEAA28A -member_ip -member_ip -1522118356 -zhenghong -1562381175 -zhenghong -评价的ip -varchar(64) -64 - - -E52838CC-C5A4-488E-B8FC-CAA95C8A91FE -create_time -create_time -1522118413 -zhenghong -1563087807 -zhenghong -创建时间 -datetime - - -E9E4FE59-49A2-4A62-8EC7-743681046C91 -show_status -show_status -1522118413 -zhenghong -1563087807 -zhenghong -是否显示 -int(1) -1 - - -80FA2177-5DC7-44A6-9866-A5035CF28945 -product_attribute -product_attribute -1522118413 -zhenghong -1562381175 -zhenghong -购买时的商品属性 -varchar(255) -255 - - -01BB36A4-7394-4FDD-B98E-8F5CD93681DC -collect_couont -collect_couont -1522118537 -zhenghong -1563087807 -zhenghong -收藏数 -int - - -ADE904EF-5FB2-4B1F-8039-781A71E311C3 -read_count -read_count -1522118537 -zhenghong -1563087807 -zhenghong -阅读数 -int - - -F002CEBA-5992-40D4-8D94-94337027CB29 -content -content -1522118537 -zhenghong -1563087807 -zhenghong -内容 -text - - -8681E4DA-CA64-4B4E-BF5C-00314561B51B -pics -pics -1522118537 -zhenghong -1562381175 -zhenghong -上传图片地址,以逗号隔开 -varchar(1000) -1000 - - -1DADC58A-3045-49E3-B8FF-68A8B311B3C3 -member_icon -member_icon -1522118919 -zhenghong -1562381175 -zhenghong -评论用户头像 -varchar(255) -255 - - -DEDB52DC-1D3A-4C33-BF5C-4E805B79C73F -replay_count -replay_count -1522119113 -zhenghong -1563087807 -zhenghong -回复数 -int - - - - -FAB3C6E4-A89A-440D-902D-9A6B960C1D45 -Key_1 -Key_1 -1522118175 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -9E3432A8-89CD-47EC-9AB3-3CD8E7AF1B5E -pms_comment_replay -pms_comment_replay -1522118840 -zhenghong -1562381175 -zhenghong -产品评价回复表 - - - -1E8F8FF8-DC2E-446E-9840-7944BAB1EC72 -id -id -1522118870 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -2492C8A4-F822-4F9C-949A-3A1B4C5A0A79 -comment_id -comment_id -1522119056 -zhenghong -1563087841 -zhenghong -评论id -bigint - - -60469683-383D-4027-8945-D71703C75C2A -member_nick_name -member_nick_name -1522118977 -zhenghong -1563087841 -zhenghong -会员昵称 -varchar(255) -255 - - -89A70486-FC08-4866-868F-EC9F7F25D5C3 -member_icon -member_icon -1522118977 -zhenghong -1563087841 -zhenghong -会员头像 -varchar(255) -255 - - -BC9164F3-6443-4A94-B039-68731EF3A1CC -content -content -1522118977 -zhenghong -1563087841 -zhenghong -内容 -varchar(1000) -1000 - - -EF69ADBE-F5FA-45F6-80E6-24570653C6DB -create_time -create_time -1522118977 -zhenghong -1563087841 -zhenghong -创建时间 -datetime - - -2E22355B-E4EE-426F-A795-89C2020E3BA1 -type -type -1522119192 -zhenghong -1562381175 -zhenghong -评论人员类型;0->会员;1->管理员 -int(1) -1 - - - - -8332A16A-A9F0-40FE-A9C6-B3FE161102DC -Key_1 -Key_1 -1522118880 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -34F3EBAE-8EAF-4AEE-9740-B02F5B28AE6A -pms_album -pms_album -1522120039 -zhenghong -1562381175 -zhenghong -相册表 - - - -EA0F5874-E723-4A0A-B350-E35315769D7C -id -id -1522120040 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -4FB2EDD4-A67D-4237-A940-C940A5EFFCDC -name -name -1522120061 -zhenghong -1562381175 -zhenghong -varchar(64) -64 - - -B3274D5D-C3D7-4CD7-B608-ABF09E614A00 -cover_pic -cover_pic -1522120061 -zhenghong -1562381175 -zhenghong -varchar(1000) -1000 - - -F0CCD6F5-01D0-4FCB-B3B5-39BFA30BBF35 -pic_count -pic_count -1522120061 -zhenghong -1562381175 -zhenghong -int - - -9066F137-5936-47D9-9B46-662F0BA8F6D6 -sort -sort -1522120061 -zhenghong -1562381175 -zhenghong -int - - -11E58CA7-4AC8-450F-B3C9-6F39445D2958 -description -description -1522120061 -zhenghong -1562381175 -zhenghong -varchar(1000) -1000 - - - - -E023010E-9852-40B7-8E76-6EAF21D9F3D2 -Key_1 -Key_1 -1522120040 -zhenghong -1562381175 -zhenghong - - - - - - - - - - -DC6B4FA5-8CE8-4068-8870-E24B149DAB7D -pms_album_pic -pms_album_pic -1522120250 -zhenghong -1562381175 -zhenghong -画册图片表 - - - -356F819F-142D-4875-9630-549B66792843 -id -id -1522120251 -zhenghong -1562381175 -zhenghong -bigint -1 -1 - - -4A1B3C57-D479-4219-AA8A-F87F4292A99F -album_id -album_id -1522120295 -zhenghong -1562381175 -zhenghong -bigint - - -11F7EBA7-957F-4A2F-BAC5-8AC1CD81E871 -pic -pic -1522120273 -zhenghong -1562381175 -zhenghong -varchar(1000) -1000 - - - - -F16C4AE8-3751-42C8-BB61-86156D544A59 -Key_1 -Key_1 -1522120251 -zhenghong -1562381175 -zhenghong - - - - - - - - - - - - -865C36C4-26C3-47C7-9148-874CD82354FB -Reference_1 -Reference_1 -1521706257 -zhenghong -1521706257 -zhenghong -0..* -1 -1 - - - - - - - - - - - -2C5A6848-1446-4C8C-ACE9-7693C7050278 -1521706257 -zhenghong -1521706257 -zhenghong - - - - - - - - - - -42752F4A-E65D-4EC7-B683-82B036EF0C13 -Reference_2 -Reference_2 -1521710488 -zhenghong -1521710488 -zhenghong -0..* -1 -1 - - - - - - - - - - - -4316F189-AEF5-402C-92B9-E06C3E53AF55 -1521710488 -zhenghong -1521710488 -zhenghong - - - - - - - - - - -9D9F761E-04D9-49A8-B43A-4B3CC30CB0BD -Reference_3 -Reference_3 -1521770349 -zhenghong -1521770349 -zhenghong -0..* -1 -1 - - - - - - - - - - - -2E88A7C6-BFF6-4154-A4D7-A11D11217618 -1521770349 -zhenghong -1521770349 -zhenghong - - - - - - - - - - -716129A2-A702-4A1D-ADF1-3577399FB29F -Reference_4 -Reference_4 -1521771362 -zhenghong -1521771362 -zhenghong -0..* -1 -1 - - - - - - - - - - - -13592B4D-2ACC-496C-B00E-9DE7DBFC31EA -1521771362 -zhenghong -1521771362 -zhenghong - - - - - - - - - - -2A5B5CC1-4B53-43C3-8E7F-BC04F374F423 -Reference_5 -Reference_5 -1521773101 -zhenghong -1521773101 -zhenghong -0..* -1 -1 - - - - - - - - - - - -31444B3A-E66F-450C-A1BD-1361E4785765 -1521773101 -zhenghong -1521773101 -zhenghong - - - - - - - - - - -1846E24E-99B4-41D0-948A-FE1FB1092966 -Reference_6 -Reference_6 -1521783613 -zhenghong -1521783613 -zhenghong -0..* -1 -1 - - - - - - - - - - - -87128AEE-4706-41FC-8650-FFED3FBB6BFF -1521783613 -zhenghong -1521783613 -zhenghong - - - - - - - - - - -7A6E34B4-BD78-4FC2-8027-44429DC8D5DE -Reference_9 -Reference_9 -1521791466 -zhenghong -1521791466 -zhenghong -0..* -1 -1 - - - - - - - - - - - -1DF9C2E9-AF69-42E0-9D46-BAB969D8DADD -1521791466 -zhenghong -1521791466 -zhenghong - - - - - - - - - - -58BF9099-A1DA-40BA-BCAB-97472E4FFBF3 -Reference_10 -Reference_10 -1521792428 -zhenghong -1521792428 -zhenghong -0..* -1 -1 - - - - - - - - - - - -ED9325FA-9FF9-49CE-90FC-86D23FD35F59 -1521792428 -zhenghong -1521792428 -zhenghong - - - - - - - - - - -9DB087C9-1D3F-445A-9348-1D6CF7562B22 -Reference_11 -Reference_11 -1521792909 -zhenghong -1521792909 -zhenghong -0..* -1 -1 - - - - - - - - - - - -FC4C8120-6D40-49BC-9D4F-4BCED3EB778B -1521792909 -zhenghong -1521792909 -zhenghong - - - - - - - - - - -6E6AADAB-B9BB-4E31-9A95-A788C1AF7ADC -Reference_12 -Reference_12 -1522045168 -zhenghong -1522045168 -zhenghong -0..* -1 -1 - - - - - - - - - - - -D13A8C8E-13EB-4F12-9FAD-AD550ADAAC88 -1522045168 -zhenghong -1522045168 -zhenghong - - - - - - - - - - -3E1BF65C-FD2E-4416-831C-757F8F8AC559 -Reference_13 -Reference_13 -1522046100 -zhenghong -1522046100 -zhenghong -0..* -1 -1 - - - - - - - - - - - -6BE4FC33-50C1-4BC7-950E-EBB5930C5611 -1522046100 -zhenghong -1522046100 -zhenghong - - - - - - - - - - -33E424CD-7854-4BB9-A06C-49E0BFADB9CA -Reference_14 -Reference_14 -1522046451 -zhenghong -1522046451 -zhenghong -0..* -1 -1 - - - - - - - - - - - -D921EE79-4AD7-400F-B3EB-9BAB7E9FDE3F -1522046451 -zhenghong -1522046451 -zhenghong - - - - - - - - - - -A8CFDA85-FA38-41E3-A803-711ABBA74359 -Reference_15 -Reference_15 -1522046456 -zhenghong -1522046456 -zhenghong -0..* -1 -1 - - - - - - - - - - - -B52C7EDD-FD1C-47AF-A8A1-1210243D26CE -1522046456 -zhenghong -1522046456 -zhenghong - - - - - - - - - - -F641DC8D-7AFC-4C4B-8137-569928573950 -Reference_20 -Reference_20 -1522114406 -zhenghong -1522114406 -zhenghong -0..* -1 -1 - - - - - - - - - - - -DF51B516-6D4E-4AB1-9255-8EE7E2E8B4FC -1522114406 -zhenghong -1522114406 -zhenghong - - - - - - - - - - -6905525A-BD0D-4FC0-9AE9-1EFEEBC3651C -Reference_21 -Reference_21 -1522115961 -zhenghong -1522115961 -zhenghong -0..* -1 -1 - - - - - - - - - - - -143D8DFF-E375-4219-B6C8-6506432E2831 -1522115961 -zhenghong -1522115961 -zhenghong - - - - - - - - - - -B5C0B70F-08CD-4C01-A9C9-9AE472C00EA3 -Reference_22 -Reference_22 -1522115983 -zhenghong -1522115983 -zhenghong -0..* -1 -1 - - - - - - - - - - - -F6355240-C8E1-4C51-BC99-C65A925AE8CB -1522115983 -zhenghong -1522115983 -zhenghong - - - - - - - - - - -7F5D44FB-E6DE-40AB-A6A7-92E31441077A -Reference_23 -Reference_23 -1522118676 -zhenghong -1522118676 -zhenghong -0..* -1 -1 - - - - - - - - - - - -E2681174-16C3-4087-80A3-4674EDED65C6 -1522118676 -zhenghong -1522118676 -zhenghong - - - - - - - - - - -A7F7A2F9-C302-4EAD-927C-AD229A657AB4 -Reference_24 -Reference_24 -1522119056 -zhenghong -1522119056 -zhenghong -0..* -1 -1 - - - - - - - - - - - -D12E0128-7FA6-4D66-895A-2B25D052B989 -1522119056 -zhenghong -1522119056 -zhenghong - - - - - - - - - - -714B1C6C-B1DC-4151-AFF6-076FEA0435A4 -Reference_25 -Reference_25 -1522120295 -zhenghong -1522120295 -zhenghong -0..* -1 -1 - - - - - - - - - - - -57C0839A-E04B-4F0B-9326-12B35D39765F -1522120295 -zhenghong -1522120295 -zhenghong - - - - - - - - - - - - -876C8F6B-B1D6-4105-A914-091B90933815 -PUBLIC -PUBLIC -1562380870 -zhenghong -1562380870 -zhenghong - - - - -A3EE2FD2-0306-4633-86DE-ED692CF20131 -MySQL 5.0 -MYSQL50 -1562380870 -zhenghong -1562380870 -zhenghong -file:///%_DBMS%/mysql50.xdb -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B -1276524678 - - - - - - - - - - \ No newline at end of file diff --git a/document/pdm/mall_sms.pdm b/document/pdm/mall_sms.pdm deleted file mode 100644 index dd9cb15a..00000000 --- a/document/pdm/mall_sms.pdm +++ /dev/null @@ -1,3758 +0,0 @@ - - - - - - - - - -3A6D03FB-2567-4F35-B3D7-98B607AA6060 -mall_sms -mall_sms -1562381864 -zhenghong -1562382014 -zhenghong -[FolderOptions] - -[FolderOptions\Physical Objects] -GenerationCheckModel=Yes -GenerationPath= -GenerationOptions= -GenerationTasks= -GenerationTargets= -GenerationSelections= -RevPkey=Yes -RevFkey=Yes -RevAkey=Yes -RevCheck=Yes -RevIndx=Yes -RevOpts=Yes -RevViewAsTabl=No -RevViewOpts=Yes -RevSystAsTabl=Yes -RevTablPerm=No -RevViewPerm=No -RevProcPerm=No -RevDbpkPerm=No -RevSqncPerm=No -RevAdtPerm=No -RevUserPriv=No -RevUserOpts=No -RevGrpePriv=No -RevRolePriv=No -RevDtbsOpts=Yes -RevDtbsPerm=No -RevViewIndx=Yes -RevJidxOpts=Yes -RevStats=No -RevTspcPerm=No -RevCaseSensitive=No -GenTrgrStdMsg=Yes -GenTrgrMsgTab= -GenTrgrMsgNo= -GenTrgrMsgTxt= -TrgrPreserve=No -TrgrIns=Yes -TrgrUpd=Yes -TrgrDel=Yes -TrgrC2Ins=Yes -TrgrC2Upd=Yes -TrgrC3=Yes -TrgrC4=Yes -TrgrC5=Yes -TrgrC6=Yes -TrgrC7=Yes -TrgrC8=Yes -TrgrC9=Yes -TrgrC10=Yes -TrgrC11=Yes -TrgrC1=Yes -TrgrC12Ins=Yes -TrgrC12Upd=Yes -TrgrC13=Yes -UpdateTableStatistics=Yes -UpdateColumnStatistics=Yes - -[FolderOptions\Physical Objects\Database Generation] -GenScriptName=crebas -GenScriptName0= -GenScriptName1= -GenScriptName2= -GenScriptName3= -GenScriptName4= -GenScriptName5= -GenScriptName6= -GenScriptName7= -GenScriptName8= -GenScriptName9= -GenPathName= -GenSingleFile=Yes -GenODBC=No -GenCheckModel=Yes -GenScriptPrev=Yes -GenArchiveModel=No -GenUseSync=No -GenSyncChoice=0 -GenSyncArch= -GenSyncRmg=0 - -[FolderOptions\Physical Objects\Database Generation\Format] -GenScriptTitle=Yes -GenScriptNamLabl=No -GenScriptQDtbs=Yes -GenScriptQOwnr=Yes -GenScriptCase=0 -GenScriptEncoding=ANSI -GenScriptNAcct=No -IdentifierDelimiter=" - -[FolderOptions\Physical Objects\Database Generation\Database] -Create=Yes -Open=Yes -Close=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Database\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Tablespace] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Storage] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\User] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\User\Create] -Physical Options=No - -[FolderOptions\Physical Objects\Database Generation\Group] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\Role] -Create=Yes -Drop=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] -Default value=Yes -Check=Yes - -[FolderOptions\Physical Objects\Database Generation\AbstractDataType] -Create=Yes -Header=Yes -Footer=Yes -Drop=Yes -Comment=Yes -Install JAVA class=Yes -Remove JAVA class=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Rule] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Default] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Sequence] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] -Check=Yes -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] -User datatype=Yes -Default value=Yes -Check=Yes -Physical Options=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] -Constraint declaration=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] -Constraint declaration=Yes -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] -Primary key=Yes -Foreign key=Yes -Alternate key=Yes -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\View] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\View\Create] -Force Column list=No -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] -Table=Yes -View=Yes -Proc=Yes -Synonym=Yes -Database Package=Yes -Sequence=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Procedure] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Procedure\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\DatabasePackage] -Create=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\WebService] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Dimension] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synchronization] -GenBackupTabl=1 -GenKeepBackTabl=1 -GenTmpTablDrop=No -GenKeepTablOpts=No - -[FolderOptions\Physical Objects\Test Data] -GenDataPathName= -GenDataSinglefile=Yes -GenDataScriptName=testdata -GenDataScriptName0= -GenDataScriptName1= -GenDataScriptName2= -GenDataScriptName3= -GenDataScriptName4= -GenDataScriptName5= -GenDataScriptName6= -GenDataScriptName7= -GenDataScriptName8= -GenDataScriptName9= -GenDataOdbc=0 -GenDataDelOld=No -GenDataTitle=No -GenDataDefNumRows=20 -GenDataCommit=0 -GenDataPacket=0 -GenDataOwner=No -GenDataProfNumb= -GenDataProfChar= -GenDataProfDate= -GenDataCSVSeparator=, -GenDataFileFormat=CSV -GenDataUseWizard=No - -[FolderOptions\Pdm] -IndxIQName=%COLUMN%_%INDEXTYPE% -IndxPK=Yes -IndxFK=Yes -IndxAK=Yes -IndxPKName=%TABLE%_PK -IndxFKName=%REFR%_FK -IndxAKName=%AKEY%_AK -IndxPreserve=No -IndxThreshold=0 -IndxStats=No -RefrPreserve=No -JidxPreserve=No -RbldMultiFact=Yes -RbldMultiDim=Yes -RbldMultiJidx=Yes -CubePreserve=No -TablStProcPreserve=No -ProcDepPreserve=Yes -TrgrDepPreserve=Yes -CubeScriptPath= -CubeScriptCase=0 -CubeScriptEncoding=ANSI -CubeScriptNacct=No -CubeScriptHeader=No -CubeScriptExt=csv -CubeScriptExt0=txt -CubeScriptExt1= -CubeScriptExt2= -CubeScriptSep=, -CubeScriptDeli=" -EstimationYears=0 -DfltDomnName=D_%.U:VALUE% -DfltColnName=D_%.U:VALUE% -DfltReuse=Yes -DfltDrop=Yes -[ModelOptions] - -[ModelOptions\Physical Objects] -CaseSensitive=No -DisplayName=Yes -EnableTrans=No -UseTerm=No -EnableRequirements=No -EnableFullShortcut=Yes -DefaultDttp= -IgnoreOwner=No -RebuildTrigger=Yes -RefrUnique=No -RefrAutoMigrate=Yes -RefrMigrateReuse=Yes -RefrMigrateDomain=Yes -RefrMigrateCheck=Yes -RefrMigrateRule=Yes -RefrMigrateExtd=No -RefrMigrDefaultLink=No -RefrDfltImpl=D -RefrPrgtColn=No -RefrMigrateToEnd=No -RebuildTriggerDep=No -ColnFKName=%.3:PARENT%_%COLUMN% -ColnFKNameUse=No -DomnCopyDttp=Yes -DomnCopyChck=No -DomnCopyRule=No -DomnCopyMand=No -DomnCopyExtd=No -DomnCopyProf=No -Notation=0 -DomnDefaultMandatory=No -ColnDefaultMandatory=No -TablDefaultOwner= -ViewDefaultOwner= -TrgrDefaultOwnerTabl= -TrgrDefaultOwnerView= -IdxDefaultOwnerTabl= -IdxDefaultOwnerView= -JdxDefaultOwner= -DBPackDefaultOwner= -SeqDefaultOwner= -ProcDefaultOwner= -DBMSTrgrDefaultOwner= -Currency=USD -RefrDeleteConstraint=1 -RefrUpdateConstraint=1 -RefrParentMandatory=No -RefrParentChangeAllow=Yes -RefrCheckOnCommit=No - -[ModelOptions\Physical Objects\NamingOptionsTemplates] - -[ModelOptions\Physical Objects\ClssNamingOptions] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL] - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN] - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX] - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR] - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF] - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT] - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO] - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Connection] - -[ModelOptions\Pdm] - -[ModelOptions\Generate] - -[ModelOptions\Generate\Xsm] -GenRootElement=Yes -GenComplexType=No -GenAttribute=Yes -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=No - -[ModelOptions\Generate\Pdm] -RRMapping=No - -[ModelOptions\Generate\Cdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No -Notation=2 - -[ModelOptions\Generate\Oom] -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=Yes -ClassPrefix= - -[ModelOptions\Generate\Ldm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No - -[ModelOptions\Default Opts] - -[ModelOptions\Default Opts\TABL] -PhysOpts= - -[ModelOptions\Default Opts\COLN] -PhysOpts= - -[ModelOptions\Default Opts\INDX] -PhysOpts= - -[ModelOptions\Default Opts\AKEY] -PhysOpts= - -[ModelOptions\Default Opts\PKEY] -PhysOpts= - -[ModelOptions\Default Opts\STOR] -PhysOpts= - -[ModelOptions\Default Opts\TSPC] -PhysOpts= - -[ModelOptions\Default Opts\SQNC] -PhysOpts= - -[ModelOptions\Default Opts\DTBS] -PhysOpts= - -[ModelOptions\Default Opts\USER] -PhysOpts= - -[ModelOptions\Default Opts\JIDX] -PhysOpts= - - -B60890E1-ED2A-49C9-B7C6-0A5484C2984A -MySQL 5.0 -MYSQL50 -1562381864 -zhenghong -1562381864 -zhenghong - -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B - - - - -BE9688CB-17D2-49E5-88A5-85CB0D7D300B -sms_diagram -sms_diagram -1562381864 -zhenghong -1562382014 -zhenghong -[DisplayPreferences] - -[DisplayPreferences\PDM] - -[DisplayPreferences\General] -Adjust to text=Yes -Snap Grid=No -Constrain Labels=Yes -Display Grid=No -Show Page Delimiter=Yes -Show Links intersections=Yes -Activate automatic link routing=Yes -Grid size=0 -Graphic unit=2 -Window color=255, 255, 255 -Background image= -Background mode=8 -Watermark image= -Watermark mode=8 -Show watermark on screen=No -Gradient mode=0 -Gradient end color=255, 255, 255 -Show Swimlane=No -SwimlaneVert=Yes -TreeVert=No -CompDark=0 - -[DisplayPreferences\Object] -Show Icon=No -Mode=2 -Trunc Length=40 -Word Length=40 -Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ -Shortcut IntIcon=Yes -Shortcut IntLoct=Yes -Shortcut IntFullPath=No -Shortcut IntLastPackage=Yes -Shortcut ExtIcon=Yes -Shortcut ExtLoct=No -Shortcut ExtFullPath=No -Shortcut ExtLastPackage=Yes -Shortcut ExtIncludeModl=Yes -EObjShowStrn=Yes -ExtendedObject.Comment=No -ExtendedObject.IconPicture=No -ExtendedObject.TextStyle=No -ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -ELnkShowStrn=Yes -ELnkShowName=Yes -ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> -FileObject.Stereotype=No -FileObject.DisplayName=Yes -FileObject.LocationOrName=No -FileObject.IconPicture=No -FileObject.TextStyle=No -FileObject.IconMode=Yes -FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Package.Stereotype=Yes -Package.Comment=No -Package.IconPicture=No -Package.TextStyle=No -Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Display Model Version=Yes -Table.Stereotype=Yes -Table.DisplayName=Yes -Table.OwnerDisplayName=No -Table.Columns=Yes -Table.Columns._Filter="All Columns" PDMCOLNALL -Table.Columns._Columns=Stereotype DataType KeyIndicator -Table.Columns._Limit=-5 -Table.Keys=No -Table.Keys._Columns=Stereotype Indicator -Table.Indexes=No -Table.Indexes._Columns=Stereotype -Table.Triggers=No -Table.Triggers._Columns=Stereotype -Table.Comment=No -Table.IconPicture=No -Table.TextStyle=No -Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -View.Stereotype=Yes -View.DisplayName=Yes -View.OwnerDisplayName=No -View.Columns=Yes -View.Columns._Columns=DisplayName -View.Columns._Limit=-5 -View.TemporaryVTables=Yes -View.Indexes=No -View.Comment=No -View.IconPicture=No -View.TextStyle=No -View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Procedure.Stereotype=No -Procedure.DisplayName=Yes -Procedure.OwnerDisplayName=No -Procedure.Comment=No -Procedure.IconPicture=No -Procedure.TextStyle=No -Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Reference.Cardinality=No -Reference.ImplementationType=No -Reference.ChildRole=Yes -Reference.Stereotype=Yes -Reference.DisplayName=No -Reference.ForeignKeyConstraintName=No -Reference.JoinExpression=No -Reference.Integrity=No -Reference.ParentRole=Yes -Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> -ViewReference.ChildRole=Yes -ViewReference.Stereotype=Yes -ViewReference.DisplayName=No -ViewReference.JoinExpression=No -ViewReference.ParentRole=Yes -ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> - -[DisplayPreferences\Symbol] - -[DisplayPreferences\Symbol\FRMEOBJ] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=6000 -Height=2000 -Brush color=255 255 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=64 -Brush gradient color=192 192 192 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 255 128 128 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FRMELNK] -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FILO] -OBJSTRNFont=新宋体,8,N -OBJSTRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LCNMFont=新宋体,8,N -LCNMFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=3600 -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PDMPCKG] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 178 178 178 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\TABL] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -KeysFont=新宋体,8,N -KeysFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -TriggersFont=新宋体,8,N -TriggersFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=178 214 252 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VIEW] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -TemporaryVTablesFont=新宋体,8,N -TemporaryVTablesFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=208 208 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PROC] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4000 -Height=1000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 108 0 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\REFR] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VREF] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\USRDEPD] -OBJXSTRFont=新宋体,8,N -OBJXSTRFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=2 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\Free Symbol] -Free TextFont=新宋体,8,N -Free TextFont color=0, 0, 0 -Line style=0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 -(8268, 11693) -((315,354), (433,354)) -1 -1 - - -1562382014 -1562398053 -((-8387,30462), (-4479,31712)) -((-7987,31087),(-4879,31087)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382014 -1562398054 -((-7497,21015), (-4479,22265)) -((-7097,21640),(-4879,21640)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382014 -1562398056 -((7955,24834), (11254,26084)) -((10854,25459),(8355,25459)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382014 -1564820284 -((4908,2202), (6158,7137)) -((5533,6737),(5533,2602)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382014 -1564820276 -((-19184,10470), (-14209,11720)) -((-14609,11095),(-18784,11095)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382014 -1562382022 --1 -((-4879,17322), (8355,33596)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382014 -1562398053 --1 -((-22687,27899), (-7987,34275)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382014 -1562398054 --1 -((-23752,18226), (-7097,25054)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382014 -1562398056 --1 -((10854,22991), (25928,33817)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382014 -1562398086 --1 -((15015,6327), (28635,11875)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382014 -1562398090 --1 -((30584,14759), (44204,20307)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382014 -1562398085 --1 -((14619,14378), (28239,19926)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382014 -1562398088 --1 -((15087,-1220), (28707,4328)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382014 -1562398093 --1 -((30821,1825), (42895,13147)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382014 -1564820284 --1 -((-504,-3770), (11570,2602)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382014 -1564820285 --1 -((-21466,-4496), (-8232,2702)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382014 -1564820276 --1 -((-33826,7739), (-18784,14451)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382014 -1562398066 --1 -((-14609,6737), (11389,14899)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - - - - - - - - -AE50B113-BFF4-4DC9-9896-38BAF5B92C06 -sms_coupon -sms_coupon -1522215010 -zhenghong -1564881595 -zhenghong -优惠券表 - - - -C6874D7E-75DF-4C87-ABE8-DCB9063E6DCE -id -id -1522215060 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -891FFF27-91E9-426E-85C9-4904384F6191 -type -type -1522215069 -zhenghong -1562382014 -zhenghong -优惠卷类型;0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠券 -int(1) -1 - - -A2776E8B-2228-4E00-A0C3-89AEB34D9518 -name -name -1522215086 -zhenghong -1564881242 -zhenghong -名称 -varchar(100) -100 - - -D49EA42E-7111-423F-A898-5D5D4CFCB3A9 -platform -platform -1522215086 -zhenghong -1562382014 -zhenghong -使用平台:0->全部;1->移动;2->PC -int(1) -1 - - -A4D9A154-F444-4DDE-95D2-B646ED721C61 -count -count -1522215247 -zhenghong -1562382014 -zhenghong -数量 -int - - -89ECF996-B9DE-47A8-9995-CC17738C654D -amount -amount -1522215309 -zhenghong -1562382014 -zhenghong -金额 -decimal(10,2) -10 -2 - - -11767289-BCF5-49C3-B89E-8419BD0FEE21 -per_limit -per_limit -1522215394 -zhenghong -1562382014 -zhenghong -每人限领张数 -int - - -7D915C74-E8EA-448A-911B-AAA60D17B66F -min_point -min_point -1522215424 -zhenghong -1562382014 -zhenghong -使用门槛;0表示无门槛 -decimal(10,2) -10 -2 - - -0F65301D-1011-4934-BE99-A02E03ACD734 -start_time -start_time -1522215598 -zhenghong -1564881242 -zhenghong -开始使用时间 -datetime - - -ADC6B02A-EB8E-4055-B2FE-4ECFC92B745E -end_time -end_time -1522215598 -zhenghong -1564881242 -zhenghong -结束使用时间 -datetime - - -41CBB97A-E956-4861-BA2D-36096CB39D4F -use_type -use_type -1522215598 -zhenghong -1562382014 -zhenghong -使用类型:0->全场通用;1->指定分类;2->指定商品 -int(1) -1 - - -C1868EBF-6C3B-4AA8-A1B8-89303614F730 -note -note -1522215693 -zhenghong -1562382014 -zhenghong -备注 -varchar(200) -200 - - -7BC8B317-1CDF-4B0F-8D8A-0B82E79695FC -publish_count -publish_count -1522216740 -zhenghong -1562382014 -zhenghong -发行数量 -int - - -D46A98C6-22FB-4E6D-ADD0-629574A24971 -use_count -use_count -1522216759 -zhenghong -1562382014 -zhenghong -已使用数量 -int - - -F976BBB7-2A07-4DFA-A9BF-14C8B4A45CE3 -receive_count -receive_count -1535438655 -zhenghong -1562382014 -zhenghong -领取数量 -int - - -268E75D2-EE7C-426B-A7B8-DB5385CAB9D3 -enable_time -enable_time -1522216971 -zhenghong -1562382014 -zhenghong -可以领取的日期 -datetime - - -4B36CBE1-222E-4B9B-A9FF-A387F11E6CB5 -code -code -1522217015 -zhenghong -1562382014 -zhenghong -优惠码 -varchar(64) -64 - - -376AF94D-CE9F-4521-BC7E-A27E2616E8FD -member_level -member_level -1522288044 -zhenghong -1564881242 -zhenghong -可领取的会员类型:0->无限制 -int(1) -1 - - - - -E4C65717-B2ED-449E-8DD9-D2CE5D0E82A9 -Key_1 -Key_1 -1522215069 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -DB178E8B-1423-4819-A287-4D2C3C117625 -sms_coupon_product_relation -sms_coupon_product_relation -1522215792 -zhenghong -1564881476 -zhenghong -优惠券和商品的关系表 - - - -56298BD0-CB04-4382-BD56-9727AFCB93A3 -id -id -1522215913 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -E11FE67C-2338-45A8-BD48-FFFE92730597 -coupon_id -coupon_id -1522215975 -zhenghong -1564881476 -zhenghong -优惠券id -bigint - - -0FDD4AA1-8390-4CBB-9690-36B2C183A456 -product_id -product_id -1522216015 -zhenghong -1564881476 -zhenghong -商品id -bigint - - -6CE248F7-AE50-4EE5-AFF0-ADC98F197DEA -product_name -product_name -1541748810 -zhenghong -1562382014 -zhenghong -商品名称 -varchar(500) -500 - - -8460CD40-D620-4915-9537-AC088D8DA952 -product_sn -product_sn -1541748810 -zhenghong -1564881476 -zhenghong -商品条码 -varchar(200) -200 - - - - -C886095A-E1DA-4168-9FE1-5D7654F85808 -Key_1 -Key_1 -1522215913 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -7ED056B0-B42B-4AE4-8DD4-CE3E4FDE8BEC -sms_coupon_product_category_relation -sms_coupon_product_category_relation -1522216155 -zhenghong -1564881522 -zhenghong -优惠券和商品分类关系表 - - - -DF381149-5C45-4A46-B303-8886A1CC3FCE -id -id -1522216188 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -35B779C8-A4BF-4958-9B11-72BED3093ECC -coupon_id -coupon_id -1522216251 -zhenghong -1564881522 -zhenghong -优惠券id -bigint - - -9315DF0D-C70D-4F80-B6EC-05932458CD3B -product_category_id -product_category_id -1522216380 -zhenghong -1564881522 -zhenghong -商品分类id -bigint - - -01D81049-EC9B-489A-B93B-4463B22D1376 -product_category_name -product_category_name -1541749144 -zhenghong -1564881522 -zhenghong -商品分类名称 -varchar(200) -200 - - -3230EA04-BD27-4421-969B-1BECBEB964D0 -parent_category_name -parent_category_name -1541749144 -zhenghong -1562382014 -zhenghong -父分类名称 -varchar(200) -200 - - - - -1B5E6C30-D695-4B0C-A323-2DA72E808FDC -Key_1 -Key_1 -1522216188 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -E1A89F88-BD38-416F-8604-F4EC54CAC546 -sms_coupon_history -sms_coupon_history -1522217089 -zhenghong -1562382014 -zhenghong -优惠券使用、领取历史表 - - - -1ABCBB83-B2BA-4F9B-88A4-4242A38F9DC5 -id -id -1522217090 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -D84432B9-F179-4777-B414-624C73A6187C -coupon_id -coupon_id -1522220508 -zhenghong -1564881421 -zhenghong -优惠券id -bigint - - -07F70EC0-9857-4563-83C4-2BD5EE0A89CA -member_id -member_id -1522220546 -zhenghong -1564881421 -zhenghong -会员id -bigint - - -30274F75-0F26-4667-A616-8236470089D8 -order_id -order_id -1541490552 -zhenghong -1562382014 -zhenghong -订单id -bigint - - -AEE47A1D-A1A9-4319-86AC-ED6B4EBA4663 -coupon_code -coupon_code -1522217932 -zhenghong -1564881421 -zhenghong -优惠券码 -varchar(64) -64 - - -9B7E7B8C-6853-4C70-B239-94758A6CE29B -member_nickname -member_nickname -1522217932 -zhenghong -1562382014 -zhenghong -领取人昵称 -varchar(64) -64 - - -AB92A2C5-48A0-4359-9E44-041DC9E50559 -get_type -get_type -1522218055 -zhenghong -1562382014 -zhenghong -获取类型:0->后台赠送;1->主动获取 -int(1) -1 - - -2D7CCC5B-308F-4A82-8EDB-23C1A3AAFA4B -create_time -create_time -1522218107 -zhenghong -1564881421 -zhenghong -创建时间 -datetime - - -CEB489C5-17E2-4271-932B-0E907AE3972C -use_status -use_status -1522218107 -zhenghong -1562382014 -zhenghong -使用状态:0->未使用;1->已使用;2->已过期 -int(1) -1 - - -C3CE8601-9BA4-4961-9EB8-DCEFF85ADC6F -use_time -use_time -1522220361 -zhenghong -1562382014 -zhenghong -使用时间 -datetime - - -984E6A6A-FF3A-4B85-80E8-A34369466869 -order_sn -order_sn -1541490633 -zhenghong -1562382014 -zhenghong -订单号码 -varchar(100) -100 - - - - -BBD37E75-F067-4100-B897-985544048EA5 -Key_1 -Key_1 -1522217090 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -93C838DC-1536-4254-8754-46897C66BC2E -sms_home_brand -sms_home_brand -1522223818 -zhenghong -1564886686 -zhenghong -首页品牌推荐表 - - - -E1C5D426-96F4-46FD-947B-97C442D64339 -id -id -1522224202 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -E6AD98C4-16ED-4566-9321-FEFCA1077162 -brand_id -brand_id -1522224364 -zhenghong -1564886415 -zhenghong -商品品牌id -bigint - - -B6C962A2-E218-4252-9EE3-C9E7997A7B89 -brand_name -brand_name -1522224216 -zhenghong -1564886415 -zhenghong -商品品牌名称 -varchar(64) -64 - - -BCC007F2-F459-4AED-B626-D5F4D502049E -recommend_status -recommend_status -1522224216 -zhenghong -1564886415 -zhenghong -推荐状态:0->不推荐;1->推荐 -int(1) -1 - - -A12D305A-30EA-4E06-927B-3F967C507EF0 -sort -sort -1522224339 -zhenghong -1564886415 -zhenghong -排序 -int - - - - -8D97B798-9715-4002-BB16-FC74948F6134 -Key_1 -Key_1 -1522224202 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -71183C66-01F0-4BD8-B9F4-9C188E20A7BF -sms_home_new_product -sms_home_new_product -1522224403 -zhenghong -1564885480 -zhenghong -新品推荐商品表 - - - -6859D539-E18B-49FC-9D67-1491C07BC8C1 -id -id -1522225739 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -981139FF-AE33-4EAB-B248-BF73E508CE29 -product_id -product_id -1522225874 -zhenghong -1564886354 -zhenghong -商品id -bigint - - -97ED937C-CCE6-4810-9D85-4CA7B119CBAC -product_name -product_name -1522225762 -zhenghong -1564886354 -zhenghong -商品名称 -varchar(64) -64 - - -426CC23B-3B43-4834-9DC5-759B7F0AD0C3 -recommend_status -recommend_status -1522225762 -zhenghong -1564886354 -zhenghong -推荐状态:0->不推荐;1->推荐 -int(1) -1 - - -47FB4E96-3392-4B52-8CD1-751FBCDAC1B7 -sort -sort -1522225762 -zhenghong -1564886354 -zhenghong -排序 -int(1) -1 - - - - -CB996224-EE60-4F6C-8C88-8FC1544539F4 -Key_1 -Key_1 -1522225739 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -D68430D2-72C7-47DB-891D-FEEEBD534837 -sms_home_recommend_product -sms_home_recommend_product -1522224403 -zhenghong -1564886755 -zhenghong -人气推荐商品表 - - - -B179D773-D6B8-41FF-AC94-78359E4E32B9 -id -id -1522225739 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -A7DFFDCB-B5A3-49A0-8250-43107420E98A -product_id -product_id -1522226077 -zhenghong -1562382014 -zhenghong -bigint - - -3A52A6F2-6B34-43A7-9468-189766B56BBC -product_name -product_name -1522225762 -zhenghong -1562382014 -zhenghong -varchar(64) -64 - - -EF1FBAD5-7B31-46A0-B535-F475A80BFEA7 -recommend_status -recommend_status -1522225762 -zhenghong -1562382014 -zhenghong -int(1) -1 - - -9A484ED3-3906-4D84-B62A-DDFE6583E17E -sort -sort -1522225762 -zhenghong -1562382014 -zhenghong -int(1) -1 - - - - -23AF79AC-B471-4A2A-AA43-2267F9133763 -Key_1 -Key_1 -1522225739 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -AB0F8E97-E3F8-4D0C-847A-0C6911E508A3 -sms_home_recommend_subject -sms_home_recommend_subject -1522223818 -zhenghong -1564886716 -zhenghong -首页专题推荐表 - - - -36D0B3A5-40C7-48F1-8BA2-8439B00D5824 -id -id -1522224202 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -3A35FEA2-5DF6-4A2A-B592-495CA8F28510 -subject_id -subject_id -1522226272 -zhenghong -1564886439 -zhenghong -专题id -bigint - - -45222887-6531-4478-8236-5CB0F5B322D4 -subject_name -subject_name -1522224216 -zhenghong -1564886439 -zhenghong -专题名称 -varchar(64) -64 - - -DC0F8F52-4587-4F53-8B0D-1EC816F7D99C -recommend_status -recommend_status -1522224216 -zhenghong -1564886439 -zhenghong -推荐状态:0->不推荐;1->推荐 -int(1) -1 - - -1F88605E-80C9-4E93-9DE5-0ACE4C00642E -sort -sort -1522224339 -zhenghong -1564886439 -zhenghong -排序 -int - - - - -C16DECDD-5E8B-4B7C-9465-9F1381D1FF8B -Key_1 -Key_1 -1522224202 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -8877F312-B3E9-440C-9DFF-A7A758D5CAF7 -sms_home_advertise -sms_home_advertise -1522227700 -zhenghong -1562382014 -zhenghong -首页轮播广告表 - - - -87DFA755-3755-4D6C-A1E2-3F1475CEC276 -id -id -1522228220 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -8A87BE54-7270-4661-9658-92EBC4E5E696 -name -name -1522228234 -zhenghong -1564886383 -zhenghong -名称 -varchar(100) -100 - - -F0F10165-85AC-4B0E-BB91-0BEDE52E7F08 -type -type -1522228234 -zhenghong -1562382014 -zhenghong -轮播位置:0->PC首页轮播;1->app首页轮播 -int(1) -1 - - -29E40164-BBC6-4497-A909-AFB766261B21 -pic -pic -1522228288 -zhenghong -1564886383 -zhenghong -图片地址 -varchar(500) -500 - - -3154C8C8-4554-4E2A-919A-EBB746040FEF -start_time -start_time -1522228288 -zhenghong -1564886383 -zhenghong -开始时间 -datetime - - -948D6F5E-F98F-41F5-AC49-06636DD70313 -end_time -end_time -1522228288 -zhenghong -1564886383 -zhenghong -结束时间 -datetime - - -AD287F3D-DCD5-4A57-B17B-C645E8FF6832 -status -status -1522228288 -zhenghong -1562382014 -zhenghong -上下线状态:0->下线;1->上线 -int(1) -1 - - -58FB1236-B23F-4A69-8D2E-386BFE6B4489 -click_count -click_count -1522228387 -zhenghong -1562382014 -zhenghong -点击数 -int - - -BDF94604-E097-4CF5-BD91-433804D438F7 -order_count -order_count -1522228387 -zhenghong -1562382014 -zhenghong -下单数 -int - - -02263A45-D8B4-4438-BC15-D821E46DDFD3 -url -url -1522228518 -zhenghong -1562382014 -zhenghong -链接地址 -varchar(500) -500 - - -4C529189-D839-4377-A1E1-A67F121C3057 -note -note -1522228518 -zhenghong -1562382014 -zhenghong -备注 -varchar(500) -500 - - -D2870FD0-3289-491E-AEE2-325B6A38631B -sort -sort -1541577989 -zhenghong -1562382014 -zhenghong -排序 -0 -int -{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0= -{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0= - - - - - - -AB998787-7B59-4552-A33D-E7167AA60D7C -Key_1 -Key_1 -1522228220 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -96594E99-15FC-4003-B45E-5E73BD2196DD -sms_flash_promotion -sms_flash_promotion -1522300652 -zhenghong -1562382014 -zhenghong -限时购表 - - - -266ABAEA-7F8C-4010-ABDC-7F93C431F8F4 -id -id -1522300654 -zhenghong -1562382014 -zhenghong -bigint -1 -1 - - -CC5305CF-8F1C-470E-AE60-2B18F9573294 -title -title -1522300794 -zhenghong -1564820351 -zhenghong -标题 -varchar(200) -200 - - -DC39FC22-61BF-4FE4-B029-F392193ECBE5 -start_date -start_date -1522300794 -zhenghong -1562382014 -zhenghong -开始日期 -date - - -0A4B342D-A1B2-4239-9798-85F05908D71D -end_date -end_date -1522300794 -zhenghong -1562382014 -zhenghong -结束日期 -date - - -E8A46911-5E96-42EC-B1FA-AB267213BBBE -status -status -1522300794 -zhenghong -1562382014 -zhenghong -上下线状态 -int(1) -1 - - -2F64DB8E-FE44-44D6-A609-6AC8ECD9BC77 -create_time -create_time -1522301354 -zhenghong -1564821723 -zhenghong -创建时间 -datetime - - - - -0BD0D2F8-76D9-4081-9E0B-AA2C0E8CF113 -Key_1 -Key_1 -1522300654 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -25CCE93A-17BA-4C06-8330-8F53C2452710 -sms_flash_promotion_log -sms_flash_promotion_log -1522303116 -zhenghong -1562382014 -zhenghong -限时购通知记录 - - - -3C6D9DEE-E7A6-4DAB-A89C-9A419C7F79C8 -id -id -1522303118 -zhenghong -1562382014 -zhenghong -int -1 -1 - - -2B20CCA3-5BB7-4EDF-9B75-B477EF80BB38 -member_id -member_id -1522303390 -zhenghong -1564820419 -zhenghong -会员id -int - - -E7007B77-885B-4DC1-B7B9-C4A00E412AD2 -product_id -product_id -1522303410 -zhenghong -1564820419 -zhenghong -商品id -bigint - - -B7B4B12F-A198-4E0A-BAAE-98E70CCB392C -member_phone -member_phone -1522303170 -zhenghong -1564820419 -zhenghong -会员电话 -varchar(64) -64 - - -6336CDDB-8C6D-4544-BEDB-E17878819708 -product_name -product_name -1522303170 -zhenghong -1564820419 -zhenghong -商品名称 -varchar(100) -100 - - -C3EDD1B2-6B4B-4ABA-894C-ADA74D846642 -subscribe_time -subscribe_time -1522303170 -zhenghong -1562382014 -zhenghong -会员订阅时间 -datetime - - -B72578E2-97CE-4717-B8C6-AAC44D294E47 -send_time -send_time -1522303170 -zhenghong -1564820419 -zhenghong -发送时间 -datetime - - - - -A70C14B9-8149-43F4-9F95-7CB51971F02C -Key_1 -Key_1 -1522303118 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -457390DF-0474-4602-B0F0-79BEB81FCBB7 -sms_flash_promotion_session -sms_flash_promotion_session -1542177985 -zhenghong -1562382014 -zhenghong -限时购场次表 - - - -5D9C45F6-83BE-49B8-9931-5AF735ABB8BF -id -id -1542178330 -zhenghong -1562382014 -zhenghong -编号 -bigint -1 -1 - - -5A46B75B-AB36-46F1-89DB-4D236CA1BA22 -name -name -1542178344 -zhenghong -1562382014 -zhenghong -场次名称 -varchar(200) -200 - - -742092C5-EB89-43B0-9B44-1949934EF830 -start_time -start_time -1542178368 -zhenghong -1562382014 -zhenghong -每日开始时间 -time - - -8C674B74-E8C8-4156-8B17-B7158C4CAEB8 -end_time -end_time -1542178396 -zhenghong -1562382014 -zhenghong -每日结束时间 -time - - -84EA2AC4-FA45-4229-8B22-BEB9EAD987E8 -status -status -1542178416 -zhenghong -1562382014 -zhenghong -启用状态:0->不启用;1->启用 -int(1) -1 - - -310DD169-0DB3-44A4-AD36-787C4449B861 -create_time -create_time -1542178436 -zhenghong -1562382014 -zhenghong -创建时间 -datetime - - - - -0C8AA53A-2CF4-4D5C-B6BC-EF14496CA6DC -Key_1 -Key_1 -1542178330 -zhenghong -1562382014 -zhenghong - - - - - - - - - - -E39A9EFA-AE58-46C2-B20C-6E4530439D74 -sms_flash_promotion_product_relation -sms_flash_promotion_product_relation -1542179013 -zhenghong -1564821529 -zhenghong -限时购与商品关系表 - - - -4270DC49-4E19-4F73-9E20-1B6BCEE4CFC9 -id -id -1542179066 -zhenghong -1564820381 -zhenghong -bigint -1 -1 - - -7CD36E89-845A-4545-A030-C755C6D21B92 -flash_promotion_id -flash_promotion_id -1542179374 -zhenghong -1564820381 -zhenghong -限时购id -bigint - - -5F3569B0-4E0B-4A87-AE1A-655390A24F63 -flash_promotion_session_id -flash_promotion_session_id -1542179394 -zhenghong -1562382014 -zhenghong -编号 -bigint - - -CF7230FD-2E04-48DB-BD74-9C96C2B45210 -product_id -product_id -1542179440 -zhenghong -1564820381 -zhenghong -商品价格 -bigint - - -B1034461-697E-4024-9CDD-CA07C5303554 -flash_promotion_price -flash_promotion_price -1542179066 -zhenghong -1562382014 -zhenghong -限时购价格 -decimal(10,2) -10 -2 - - -A9344ADD-0AAC-4D99-B535-31C98FAF127F -flash_promotion_count -flash_promotion_count -1542179137 -zhenghong -1562382014 -zhenghong -限时购数量 -int - - -0044ABDA-AAA4-4FC6-992D-F71301576C5A -flash_promotion_limit -flash_promotion_limit -1542179190 -zhenghong -1562382014 -zhenghong -每人限购数量 -int - - -657C23F9-97F4-4BAC-AC8C-082213DA49F2 -sort -sort -1542179226 -zhenghong -1562382014 -zhenghong -排序 -int - - - - -38265FA0-E876-4B1E-87D0-653106CE23AB -Key_1 -Key_1 -1542179066 -zhenghong -1562382014 -zhenghong - - - - - - - - - - - - -776F0719-2B3B-44D7-AD27-3CBDF74E57D6 -Reference_33 -Reference_33 -1522215975 -zhenghong -1522215975 -zhenghong -0..* -1 -1 - - - - - - - - - - - -38D94673-6A57-4ED3-8D65-64FC78382267 -1522215975 -zhenghong -1522215975 -zhenghong - - - - - - - - - - -0233EE1C-E5E8-4490-97C9-5859CE0B458E -Reference_35 -Reference_35 -1522216251 -zhenghong -1522216251 -zhenghong -0..* -1 -1 - - - - - - - - - - - -22492317-EB01-4F48-9D66-14F71142436C -1522216251 -zhenghong -1522216251 -zhenghong - - - - - - - - - - -4215D0DB-92E0-4433-A339-0C507DB70066 -Reference_37 -Reference_37 -1522220508 -zhenghong -1522220508 -zhenghong -0..* -1 -1 - - - - - - - - - - - -B4CF84C5-943F-41C4-826A-9D9E82FE0F71 -1522220508 -zhenghong -1522220508 -zhenghong - - - - - - - - - - -514E0138-8F8D-41E7-957C-F66ED6926D04 -Reference_77 -Reference_77 -1542179374 -zhenghong -1542179374 -zhenghong -0..* -1 -1 - - - - - - - - - - - -E024FEF2-BDE5-4291-85F8-FBCCE0898A60 -1542179374 -zhenghong -1542179374 -zhenghong - - - - - - - - - - -6A87B103-93C0-4521-AAD2-CC5063D91882 -Reference_78 -Reference_78 -1542179394 -zhenghong -1542179394 -zhenghong -0..* -1 -1 - - - - - - - - - - - -09D4D8F3-1CA5-4A9B-ADBF-410B6A6A52AB -1542179394 -zhenghong -1542179394 -zhenghong - - - - - - - - - - - - -2AF61104-F85A-482A-9337-6C9C9390EA5F -PUBLIC -PUBLIC -1562381864 -zhenghong -1562381864 -zhenghong - - - - -BBE9D877-AD53-418B-BCEA-320DD468E65E -MySQL 5.0 -MYSQL50 -1562381864 -zhenghong -1562381864 -zhenghong -file:///%_DBMS%/mysql50.xdb -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B -1276524678 - - - - - - - - - - \ No newline at end of file diff --git a/document/pdm/mall_ums.pdm b/document/pdm/mall_ums.pdm deleted file mode 100644 index 91295005..00000000 --- a/document/pdm/mall_ums.pdm +++ /dev/null @@ -1,5422 +0,0 @@ - - - - - - - - - -E077A971-ADA9-40AA-AEDA-07FE25E713D4 -mall_ums -mall_ums -1562382314 -zhenghong -1562382486 -zhenghong -[FolderOptions] - -[FolderOptions\Physical Objects] -GenerationCheckModel=Yes -GenerationPath= -GenerationOptions= -GenerationTasks= -GenerationTargets= -GenerationSelections= -RevPkey=Yes -RevFkey=Yes -RevAkey=Yes -RevCheck=Yes -RevIndx=Yes -RevOpts=Yes -RevViewAsTabl=No -RevViewOpts=Yes -RevSystAsTabl=Yes -RevTablPerm=No -RevViewPerm=No -RevProcPerm=No -RevDbpkPerm=No -RevSqncPerm=No -RevAdtPerm=No -RevUserPriv=No -RevUserOpts=No -RevGrpePriv=No -RevRolePriv=No -RevDtbsOpts=Yes -RevDtbsPerm=No -RevViewIndx=Yes -RevJidxOpts=Yes -RevStats=No -RevTspcPerm=No -RevCaseSensitive=No -GenTrgrStdMsg=Yes -GenTrgrMsgTab= -GenTrgrMsgNo= -GenTrgrMsgTxt= -TrgrPreserve=No -TrgrIns=Yes -TrgrUpd=Yes -TrgrDel=Yes -TrgrC2Ins=Yes -TrgrC2Upd=Yes -TrgrC3=Yes -TrgrC4=Yes -TrgrC5=Yes -TrgrC6=Yes -TrgrC7=Yes -TrgrC8=Yes -TrgrC9=Yes -TrgrC10=Yes -TrgrC11=Yes -TrgrC1=Yes -TrgrC12Ins=Yes -TrgrC12Upd=Yes -TrgrC13=Yes -UpdateTableStatistics=Yes -UpdateColumnStatistics=Yes - -[FolderOptions\Physical Objects\Database Generation] -GenScriptName=crebas -GenScriptName0= -GenScriptName1= -GenScriptName2= -GenScriptName3= -GenScriptName4= -GenScriptName5= -GenScriptName6= -GenScriptName7= -GenScriptName8= -GenScriptName9= -GenPathName= -GenSingleFile=Yes -GenODBC=No -GenCheckModel=Yes -GenScriptPrev=Yes -GenArchiveModel=No -GenUseSync=No -GenSyncChoice=0 -GenSyncArch= -GenSyncRmg=0 - -[FolderOptions\Physical Objects\Database Generation\Format] -GenScriptTitle=Yes -GenScriptNamLabl=No -GenScriptQDtbs=Yes -GenScriptQOwnr=Yes -GenScriptCase=0 -GenScriptEncoding=ANSI -GenScriptNAcct=No -IdentifierDelimiter=" - -[FolderOptions\Physical Objects\Database Generation\Database] -Create=Yes -Open=Yes -Close=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Database\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Tablespace] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Storage] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\User] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\User\Create] -Physical Options=No - -[FolderOptions\Physical Objects\Database Generation\Group] -Create=Yes -Drop=Yes -Comment=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\Role] -Create=Yes -Drop=Yes -Privilege=No - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] -Default value=Yes -Check=Yes - -[FolderOptions\Physical Objects\Database Generation\AbstractDataType] -Create=Yes -Header=Yes -Footer=Yes -Drop=Yes -Comment=Yes -Install JAVA class=Yes -Remove JAVA class=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Rule] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Default] -Create=Yes -Comment=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Sequence] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] -Check=Yes -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] -User datatype=Yes -Default value=Yes -Check=Yes -Physical Options=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] -Constraint declaration=No - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] -Constraint declaration=No -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] -Constraint declaration=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] -Constraint declaration=Yes -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] -Primary key=Yes -Foreign key=Yes -Alternate key=Yes -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\View] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\View\Create] -Force Column list=No -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] -Physical Options=Yes - -[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] -Cluster=Yes -Other=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] -For insert=Yes -For update=Yes -For delete=Yes -For other=Yes - -[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] -Table=Yes -View=Yes -Proc=Yes -Synonym=Yes -Database Package=Yes -Sequence=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] -Physical Options=Yes -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\Procedure] -Create=Yes -Drop=Yes -Comment=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\Procedure\Create] -Header=Yes -Footer=Yes - -[FolderOptions\Physical Objects\Database Generation\DatabasePackage] -Create=Yes -Drop=Yes -Permission=No - -[FolderOptions\Physical Objects\Database Generation\WebService] -Create=Yes -Drop=Yes -Comment=Yes - -[FolderOptions\Physical Objects\Database Generation\Dimension] -Create=Yes -Drop=Yes - -[FolderOptions\Physical Objects\Database Generation\Synchronization] -GenBackupTabl=1 -GenKeepBackTabl=1 -GenTmpTablDrop=No -GenKeepTablOpts=No - -[FolderOptions\Physical Objects\Test Data] -GenDataPathName= -GenDataSinglefile=Yes -GenDataScriptName=testdata -GenDataScriptName0= -GenDataScriptName1= -GenDataScriptName2= -GenDataScriptName3= -GenDataScriptName4= -GenDataScriptName5= -GenDataScriptName6= -GenDataScriptName7= -GenDataScriptName8= -GenDataScriptName9= -GenDataOdbc=0 -GenDataDelOld=No -GenDataTitle=No -GenDataDefNumRows=20 -GenDataCommit=0 -GenDataPacket=0 -GenDataOwner=No -GenDataProfNumb= -GenDataProfChar= -GenDataProfDate= -GenDataCSVSeparator=, -GenDataFileFormat=CSV -GenDataUseWizard=No - -[FolderOptions\Pdm] -IndxIQName=%COLUMN%_%INDEXTYPE% -IndxPK=Yes -IndxFK=Yes -IndxAK=Yes -IndxPKName=%TABLE%_PK -IndxFKName=%REFR%_FK -IndxAKName=%AKEY%_AK -IndxPreserve=No -IndxThreshold=0 -IndxStats=No -RefrPreserve=No -JidxPreserve=No -RbldMultiFact=Yes -RbldMultiDim=Yes -RbldMultiJidx=Yes -CubePreserve=No -TablStProcPreserve=No -ProcDepPreserve=Yes -TrgrDepPreserve=Yes -CubeScriptPath= -CubeScriptCase=0 -CubeScriptEncoding=ANSI -CubeScriptNacct=No -CubeScriptHeader=No -CubeScriptExt=csv -CubeScriptExt0=txt -CubeScriptExt1= -CubeScriptExt2= -CubeScriptSep=, -CubeScriptDeli=" -EstimationYears=0 -DfltDomnName=D_%.U:VALUE% -DfltColnName=D_%.U:VALUE% -DfltReuse=Yes -DfltDrop=Yes -[ModelOptions] - -[ModelOptions\Physical Objects] -CaseSensitive=No -DisplayName=Yes -EnableTrans=No -UseTerm=No -EnableRequirements=No -EnableFullShortcut=Yes -DefaultDttp= -IgnoreOwner=No -RebuildTrigger=Yes -RefrUnique=No -RefrAutoMigrate=Yes -RefrMigrateReuse=Yes -RefrMigrateDomain=Yes -RefrMigrateCheck=Yes -RefrMigrateRule=Yes -RefrMigrateExtd=No -RefrMigrDefaultLink=No -RefrDfltImpl=D -RefrPrgtColn=No -RefrMigrateToEnd=No -RebuildTriggerDep=No -ColnFKName=%.3:PARENT%_%COLUMN% -ColnFKNameUse=No -DomnCopyDttp=Yes -DomnCopyChck=No -DomnCopyRule=No -DomnCopyMand=No -DomnCopyExtd=No -DomnCopyProf=No -Notation=0 -DomnDefaultMandatory=No -ColnDefaultMandatory=No -TablDefaultOwner= -ViewDefaultOwner= -TrgrDefaultOwnerTabl= -TrgrDefaultOwnerView= -IdxDefaultOwnerTabl= -IdxDefaultOwnerView= -JdxDefaultOwner= -DBPackDefaultOwner= -SeqDefaultOwner= -ProcDefaultOwner= -DBMSTrgrDefaultOwner= -Currency=USD -RefrDeleteConstraint=1 -RefrUpdateConstraint=1 -RefrParentMandatory=No -RefrParentChangeAllow=Yes -RefrCheckOnCommit=No - -[ModelOptions\Physical Objects\NamingOptionsTemplates] - -[ModelOptions\Physical Objects\ClssNamingOptions] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL] - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN] - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX] - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR] - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF] - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] -Template= -MaxLen=64 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] -Template= -MaxLen=254 -Case=M -ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT] - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO] - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar= -Script= -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Connection] - -[ModelOptions\Pdm] - -[ModelOptions\Generate] - -[ModelOptions\Generate\Xsm] -GenRootElement=Yes -GenComplexType=No -GenAttribute=Yes -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=No - -[ModelOptions\Generate\Pdm] -RRMapping=No - -[ModelOptions\Generate\Cdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No -Notation=2 - -[ModelOptions\Generate\Oom] -CheckModel=Yes -SaveLinks=Yes -ORMapping=No -NameToCode=Yes -ClassPrefix= - -[ModelOptions\Generate\Ldm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No - -[ModelOptions\Default Opts] - -[ModelOptions\Default Opts\TABL] -PhysOpts= - -[ModelOptions\Default Opts\COLN] -PhysOpts= - -[ModelOptions\Default Opts\INDX] -PhysOpts= - -[ModelOptions\Default Opts\AKEY] -PhysOpts= - -[ModelOptions\Default Opts\PKEY] -PhysOpts= - -[ModelOptions\Default Opts\STOR] -PhysOpts= - -[ModelOptions\Default Opts\TSPC] -PhysOpts= - -[ModelOptions\Default Opts\SQNC] -PhysOpts= - -[ModelOptions\Default Opts\DTBS] -PhysOpts= - -[ModelOptions\Default Opts\USER] -PhysOpts= - -[ModelOptions\Default Opts\JIDX] -PhysOpts= - - -537BE721-05F8-4EF3-AD76-D15482F3DBC2 -MySQL 5.0 -MYSQL50 -1562382314 -zhenghong -1562382314 -zhenghong - -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B - - - - -91029109-81EE-4EFB-8E92-4C218618F6B5 -ums_diagram -ums_diagram -1562382314 -zhenghong -1562382486 -zhenghong -[DisplayPreferences] - -[DisplayPreferences\PDM] - -[DisplayPreferences\General] -Adjust to text=Yes -Snap Grid=No -Constrain Labels=Yes -Display Grid=No -Show Page Delimiter=Yes -Show Links intersections=Yes -Activate automatic link routing=Yes -Grid size=0 -Graphic unit=2 -Window color=255, 255, 255 -Background image= -Background mode=8 -Watermark image= -Watermark mode=8 -Show watermark on screen=No -Gradient mode=0 -Gradient end color=255, 255, 255 -Show Swimlane=No -SwimlaneVert=Yes -TreeVert=No -CompDark=0 - -[DisplayPreferences\Object] -Show Icon=No -Mode=2 -Trunc Length=40 -Word Length=40 -Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ -Shortcut IntIcon=Yes -Shortcut IntLoct=Yes -Shortcut IntFullPath=No -Shortcut IntLastPackage=Yes -Shortcut ExtIcon=Yes -Shortcut ExtLoct=No -Shortcut ExtFullPath=No -Shortcut ExtLastPackage=Yes -Shortcut ExtIncludeModl=Yes -EObjShowStrn=Yes -ExtendedObject.Comment=No -ExtendedObject.IconPicture=No -ExtendedObject.TextStyle=No -ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -ELnkShowStrn=Yes -ELnkShowName=Yes -ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> -FileObject.Stereotype=No -FileObject.DisplayName=Yes -FileObject.LocationOrName=No -FileObject.IconPicture=No -FileObject.TextStyle=No -FileObject.IconMode=Yes -FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Package.Stereotype=Yes -Package.Comment=No -Package.IconPicture=No -Package.TextStyle=No -Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Display Model Version=Yes -Table.Stereotype=Yes -Table.DisplayName=Yes -Table.OwnerDisplayName=No -Table.Columns=Yes -Table.Columns._Filter="All Columns" PDMCOLNALL -Table.Columns._Columns=Stereotype DataType KeyIndicator -Table.Columns._Limit=-5 -Table.Keys=No -Table.Keys._Columns=Stereotype Indicator -Table.Indexes=No -Table.Indexes._Columns=Stereotype -Table.Triggers=No -Table.Triggers._Columns=Stereotype -Table.Comment=No -Table.IconPicture=No -Table.TextStyle=No -Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;\&quot;PRIM \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;\&quot;KEYS \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -View.Stereotype=Yes -View.DisplayName=Yes -View.OwnerDisplayName=No -View.Columns=Yes -View.Columns._Columns=DisplayName -View.Columns._Limit=-5 -View.TemporaryVTables=Yes -View.Indexes=No -View.Comment=No -View.IconPicture=No -View.TextStyle=No -View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Procedure.Stereotype=No -Procedure.DisplayName=Yes -Procedure.OwnerDisplayName=No -Procedure.Comment=No -Procedure.IconPicture=No -Procedure.TextStyle=No -Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Reference.Cardinality=No -Reference.ImplementationType=No -Reference.ChildRole=Yes -Reference.Stereotype=Yes -Reference.DisplayName=No -Reference.ForeignKeyConstraintName=No -Reference.JoinExpression=No -Reference.Integrity=No -Reference.ParentRole=Yes -Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> -ViewReference.ChildRole=Yes -ViewReference.Stereotype=Yes -ViewReference.DisplayName=No -ViewReference.JoinExpression=No -ViewReference.ParentRole=Yes -ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> - -[DisplayPreferences\Symbol] - -[DisplayPreferences\Symbol\FRMEOBJ] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=6000 -Height=2000 -Brush color=255 255 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=64 -Brush gradient color=192 192 192 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 255 128 128 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FRMELNK] -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FILO] -OBJSTRNFont=新宋体,8,N -OBJSTRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LCNMFont=新宋体,8,N -LCNMFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=3600 -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PDMPCKG] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 178 178 178 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\TABL] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -KeysFont=新宋体,8,N -KeysFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -TriggersFont=新宋体,8,N -TriggersFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=178 214 252 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VIEW] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -ColumnsFont=新宋体,8,N -ColumnsFont color=0, 0, 0 -TablePkColumnsFont=新宋体,8,U -TablePkColumnsFont color=0, 0, 0 -TableFkColumnsFont=新宋体,8,N -TableFkColumnsFont color=0, 0, 0 -TemporaryVTablesFont=新宋体,8,N -TemporaryVTablesFont color=0, 0, 0 -IndexesFont=新宋体,8,N -IndexesFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=208 208 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\PROC] -STRNFont=新宋体,8,N -STRNFont color=0, 0, 0 -DISPNAMEFont=新宋体,8,N -DISPNAMEFont color=0, 0, 0 -OWNRDISPNAMEFont=新宋体,8,N -OWNRDISPNAMEFont color=0, 0, 0 -LABLFont=新宋体,8,N -LABLFont color=0, 0, 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4000 -Height=1000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 108 0 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\REFR] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\VREF] -SOURCEFont=新宋体,8,N -SOURCEFont color=0, 0, 0 -CENTERFont=新宋体,8,N -CENTERFont color=0, 0, 0 -DESTINATIONFont=新宋体,8,N -DESTINATIONFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 192 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\USRDEPD] -OBJXSTRFont=新宋体,8,N -OBJXSTRFont color=0, 0, 0 -Line style=1 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=2 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\Free Symbol] -Free TextFont=新宋体,8,N -Free TextFont color=0, 0, 0 -Line style=0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 -(8268, 11693) -((315,354), (433,354)) -1 -1 - - -1562382486 -1562398281 -((-12339,-2029), (-9470,-779)) -((-11939,-1404),(-9870,-1404)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398231 -((-7192,14759), (-2767,16009)) -((-3167,15384),(-6792,15384)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398240 -((-2967,25145), (-1717,38097)) -((-2342,37697),(-2342,25545)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398237 -((-5620,11116), (-2767,28517)) -((-5220,28117),(-5220,11741),(-3167,11741)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N -2 - - - - - - - - - - - -1562382486 -1562398229 -((-7007,21607), (-2767,22857)) -((-6607,22232),(-3167,22232)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398247 -((12757,5198), (18547,6448)) -((18147,5823),(13157,5823)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398218 -((4370,25145), (15950,36996)) -((15550,36596),(4995,36596),(4995,25545)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398220 -((21722,32804), (22972,34644)) -((22347,34244),(22347,33204)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398224 -((12757,11245), (17662,12495)) -((17262,11870),(13157,11870)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398222 -((12757,20693), (17348,21943)) -((16948,21318),(13157,21318)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398292 -((-3994,-13409), (4566,-7689)) -((-3594,-9148),(-3594,-8089),(4166,-8089),(4166,-12784),(2366,-12784)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N -4 - - - - - - - - - - - -1562382486 -1562398287 -((1804,188), (5309,1438)) -((4909,813),(2204,813)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398288 -((10034,-3141), (11284,-786)) -((10659,-1186),(10659,-2741)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398291 -((10034,-11765), (11284,-9539)) -((10659,-11365),(10659,-9939)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398292 -((1966,-14609), (5630,-13359)) -((5230,-13984),(2366,-13984)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398294 -((-12567,-7465), (-9470,-6215)) -((-12167,-6840),(-9870,-6840)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398294 -((-12567,-10373), (-9308,-9123)) -((-12167,-9748),(-9708,-9748)) -1 -1 -12615680 -12632256 -CENTER 0 新宋体,8,N -SOURCE 0 新宋体,8,N -DESTINATION 0 新宋体,8,N - - - - - - - - - - - -1562382486 -1562398209 --1 -((-3167,5223), (13157,25545)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382486 -1562398281 --1 -((-9870,-7440), (2204,2232)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398279 --1 -((-24013,-3327), (-11939,3045)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398231 --1 -((-23888,4214), (-6792,16362)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398240 --1 -((-2719,37697), (14297,41696)) -0 -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 -1 - - - - - -1562382486 -1562398237 --1 -((-19992,28117), (-3668,42739)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398229 --1 -((-19841,17396), (-6607,27068)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398247 --1 -((18147,-1130), (29835,6068)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398220 --1 -((14571,28481), (30123,33204)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398218 --1 -((15550,34244), (27398,38243)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398224 --1 -((17262,7859), (29724,15881)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398222 --1 -((16948,17307), (29410,25329)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398307 --1 -((19169,-7706), (31631,-2158)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398301 --1 -((19971,-17144), (35523,-9946)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398304 --1 -((20504,-23746), (34124,-18198)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398288 --1 -((4622,-9939), (16696,-2741)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398292 --1 -((-9708,-18820), (2366,-9148)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398287 --1 -((4909,-1186), (14133,2813)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398291 --1 -((5230,-15364), (16328,-11365)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - -1562382486 -1562398294 --1 -((-23641,-11171), (-12167,-6448)) -12615680 -16570034 -12632256 -STRN 0 新宋体,10,N -DISPNAME 0 新宋体,8,N -OWNRDISPNAME 0 新宋体,8,N -Columns 0 新宋体,8,N -TablePkColumns 0 新宋体,8,U -TableFkColumns 0 新宋体,8,N -Keys 0 新宋体,8,N -Indexes 0 新宋体,8,N -Triggers 0 新宋体,8,N -LABL 0 新宋体,8,N -6 -65 -16777215 - - - - - - - - - - - - -9BFDCE21-AD2E-4F59-B19C-A7521037A5E0 -ums_member -ums_member -1522217487 -zhenghong -1562382486 -zhenghong -会员表 - - - -F0640434-CEE9-49E2-A7F6-21D9A01AF31D -id -id -1522217488 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -1DE24E68-E235-4309-BB20-EC35CD75138B -member_level_id -member_level_id -1522386868 -zhenghong -1562382486 -zhenghong -bigint - - -D2E73DF5-DB6A-4534-A49E-6A17AABACEDC -username -username -1522217626 -zhenghong -1562382486 -zhenghong -用户名 -varchar(64) -64 - - -23B12CF6-6DEB-4F8C-9F86-11B358D69362 -password -password -1522217626 -zhenghong -1562382486 -zhenghong -密码 -varchar(64) -64 - - -5B493103-C9F4-4896-97CC-FCFA538E9E46 -nickname -nickname -1522217712 -zhenghong -1562382486 -zhenghong -昵称 -varchar(64) -64 - - -86E4C90D-3001-42A0-B422-CA2316059F34 -phone -phone -1522303316 -zhenghong -1562382486 -zhenghong -手机号码 -varchar(64) -64 - - -19D51C4F-3E3E-4CC7-8064-7144E3A08549 -status -status -1522386896 -zhenghong -1562382486 -zhenghong -帐号启用状态:0->禁用;1->启用 -int(1) -1 - - -CB420E85-9280-48D8-81A9-A3A512BA296E -create_time -create_time -1522386911 -zhenghong -1562382486 -zhenghong -注册时间 -datetime - - -43EC4B8D-C7E5-40F5-89C7-BD9717F64D3A -icon -icon -1522387000 -zhenghong -1562382486 -zhenghong -头像 -varchar(500) -500 - - -2E006E4C-CA4C-4C9F-BEDB-4480976445E8 -gender -gender -1522387014 -zhenghong -1562382486 -zhenghong -性别:0->未知;1->男;2->女 -int(1) -1 - - -A519EFA3-C9CF-4133-BEAB-F652904DE37B -birthday -birthday -1522387055 -zhenghong -1562382486 -zhenghong -生日 -date - - -753E5E2F-456C-4FE3-A14E-D4437B623D59 -city -city -1522387097 -zhenghong -1562382486 -zhenghong -所做城市 -varchar(64) -64 - - -356C3E98-AFEB-431B-8644-3B026A6F9119 -job -job -1522387127 -zhenghong -1562382486 -zhenghong -职业 -varchar(100) -100 - - -4ACAE49D-5EC5-4A34-B2C1-D3EF488CC8F0 -personalized_signature -personalized_signature -1522387164 -zhenghong -1562382486 -zhenghong -个性签名 -varchar(200) -200 - - -AD82B0E0-9CD2-4C5B-A5BC-27A744255CA4 -source_type -source_type -1522387221 -zhenghong -1562382486 -zhenghong -用户来源 -int(1) -1 - - -4E176EC7-186F-4DDF-BB12-B70B94250D60 -integration -integration -1522388283 -zhenghong -1562382486 -zhenghong -积分 -int - - -284DF68E-59DE-487C-84B0-AD9FC8BB75FF -growth -growth -1522388293 -zhenghong -1562382486 -zhenghong -成长值 -int - - -57DEA7F2-EB83-4B07-9240-FD92910155DC -luckey_count -luckey_count -1522389179 -zhenghong -1562382486 -zhenghong -剩余抽奖次数 -int - - -4DA4D6BD-F5B4-42AB-8779-1B7691ECF117 -history_integration -history_integration -1522396288 -zhenghong -1562382486 -zhenghong -历史积分数量 -int - - - - -DCDB80E7-5E7E-4489-A70E-AD720AE12F3A -Key_1 -Key_1 -1522217488 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -0F2911F9-4243-44D6-A6E0-C4C0388C62E2 -ums_admin -ums_admin -1522303730 -zhenghong -1562382486 -zhenghong -后台用户表 - - - -0BE4FEDB-3AD9-48DA-A624-FDFB09C2D92F -id -id -1522303731 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -88716A77-1637-4DB6-8E78-D79683637CE8 -username -username -1522303731 -zhenghong -1562382486 -zhenghong -用户名 -varchar(64) -64 - - -5BAB97FA-4F02-4629-95B4-F7FA12B30C47 -password -password -1522303731 -zhenghong -1562382486 -zhenghong -密码 -varchar(64) -64 - - -FBB8BCDA-7FB6-462F-A8DA-D0E5816E4864 -icon -icon -1522303731 -zhenghong -1562382486 -zhenghong -头像 -varchar(500) -500 - - -6C622C52-221D-4860-8D28-357E6214B652 -email -email -1522303731 -zhenghong -1562382486 -zhenghong -邮箱 -varchar(100) -100 - - -52C5C0BA-58AA-4187-9688-F7517F69D617 -nick_name -nick_name -1538199900 -zhenghong -1562382486 -zhenghong -昵称 -varchar(200) -200 - - -6C4893AA-22D6-474F-A854-AF1A1FF2C4CC -note -note -1538199923 -zhenghong -1562382486 -zhenghong -备注信息 -varchar(500) -500 - - -DAF866B4-F233-470C-9BD1-D41E341EFE63 -create_time -create_time -1538200009 -zhenghong -1562382486 -zhenghong -创建时间 -datetime - - -375192B5-687A-4D02-AEE1-37EC2ECCB37C -login_time -login_time -1538200009 -zhenghong -1562382486 -zhenghong -最后登录时间 -datetime - - -2570C013-4F84-4321-B33F-DDE96C46DFD1 -status -status -1538200789 -zhenghong -1562382486 -zhenghong -帐号启用状态:0->禁用;1->启用 -1 -int(1) -1 - - - - -11DD9DB0-7CB1-469D-9969-001AC0CB7AE7 -Key_1 -Key_1 -1522303731 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -170CAFAB-A9A1-4703-8242-2AD3C0EDA919 -ums_admin_login_log -ums_admin_login_log -1522303928 -zhenghong -1562382486 -zhenghong -后台用户登录日志表 - - - -D671B7FC-D773-4F42-978A-4C96E853F8D7 -id -id -1522303929 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -0AE045CF-4CD9-4DEF-989C-5A552F61C78F -admin_id -admin_id -1522304178 -zhenghong -1562382486 -zhenghong -bigint - - -2541982B-7DCC-44F5-BEB4-D425262F4505 -create_time -create_time -1522303968 -zhenghong -1562382486 -zhenghong -datetime - - -DA958EE2-AAEC-4A6F-8C87-ACF9BE9822EA -ip -ip -1522303968 -zhenghong -1562382486 -zhenghong -varchar(64) -64 - - -505E462F-B9EF-4D94-B7BE-5E85C13699BC -address -address -1522303968 -zhenghong -1562382486 -zhenghong -varchar(100) -100 - - -50D96715-8377-4C3B-9646-D838AD857EA5 -user_agent -user_agent -1522303968 -zhenghong -1562382486 -zhenghong -浏览器登录类型 -varchar(100) -100 - - - - -28C11252-F89B-4DB9-A8BA-CF4316B2ABF0 -Key_1 -Key_1 -1522303929 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -D4887C0A-3ABD-4619-B89B-B9BC85CBCB78 -ums_member_level -ums_member_level -1522379808 -zhenghong -1562382486 -zhenghong -会员等级表 - - - -07FB48C6-6547-4601-94CD-CD7DC525A3DF -id -id -1522379810 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -D494250C-5CED-4FA3-881B-7FBDD84AB4ED -name -name -1522379831 -zhenghong -1562382486 -zhenghong -varchar(100) -100 - - -662E5829-9F24-4B59-B04B-4B4F96D6E028 -growth_point -growth_point -1522379831 -zhenghong -1562382486 -zhenghong -int - - -5EF880C1-D080-410E-B60A-C762855CBC70 -default_status -default_status -1522379896 -zhenghong -1562382486 -zhenghong -是否为默认等级:0->不是;1->是 -int(1) -1 - - -7724E73E-6EB3-4F03-9E5B-1ECCF87DCA2B -free_freight_point -free_freight_point -1522379964 -zhenghong -1562382486 -zhenghong -免运费标准 -decimal(10,2) -10 -2 - - -D0ED7A64-72D4-4716-8D91-1AF59E420B51 -comment_growth_point -comment_growth_point -1522380184 -zhenghong -1562382486 -zhenghong -每次评价获取的成长值 -int - - -4EA98624-9EAE-40FA-B1D9-A18885921DEE -priviledge_free_freight -priviledge_free_freight -1522380199 -zhenghong -1562382486 -zhenghong -是否有免邮特权 -int(1) -1 - - -C91CD5C2-B693-46BF-ABA6-0ABF15979F1D -priviledge_sign_in -priviledge_sign_in -1522380199 -zhenghong -1562382486 -zhenghong -是否有签到特权 -int(1) -1 - - -B9F2E7CE-1135-4117-A4F0-2D95F54F8428 -priviledge_comment -priviledge_comment -1522380199 -zhenghong -1562382486 -zhenghong -是否有评论获奖励特权 -int(1) -1 - - -C4856468-F1CB-4159-BBA9-E48EF234CC78 -priviledge_promotion -priviledge_promotion -1522380199 -zhenghong -1562382486 -zhenghong -是否有专享活动特权 -int(1) -1 - - -F5D6C311-6190-4700-91D8-9A7E48BA9E78 -priviledge_member_price -priviledge_member_price -1522380199 -zhenghong -1562382486 -zhenghong -是否有会员价格特权 -int(1) -1 - - -5E81874C-81D1-4573-B8D3-1BBB54804BCC -priviledge_birthday -priviledge_birthday -1522380199 -zhenghong -1562382486 -zhenghong -是否有生日特权 -int(1) -1 - - -7D6AB103-4AF6-4355-9089-C17E3187429B -note -note -1522386815 -zhenghong -1562382486 -zhenghong -varchar(200) -200 - - - - -D482D9DC-C31F-4B66-B2E2-1B9E605D1985 -Key_1 -Key_1 -1522379810 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -A4C9F9AD-DC88-4242-B89C-0067713977D1 -ums_member_product_category_relation -ums_member_product_category_relation -1522387387 -zhenghong -1562382486 -zhenghong -会员与产品分类关系表(用户喜欢的分类) - - - -347A7073-CC04-4445-B786-586FF90EBF48 -id -id -1522387388 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -70558370-8315-4616-81A6-2DD25BB9921D -member_id -member_id -1522387461 -zhenghong -1562382486 -zhenghong -bigint - - -FC4EB91B-917B-42E9-BD10-A89CF9A6EDF4 -product_category_id -product_category_id -1522387526 -zhenghong -1562382486 -zhenghong -bigint - - - - -2DF3A95E-569F-4C18-A6B6-0EC199D5988A -Key_1 -Key_1 -1522387388 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -B5F6877B-A857-4DAD-B3CB-C62F8E2162E6 -ums_member_statistics_info -ums_member_statistics_info -1522387906 -zhenghong -1562382486 -zhenghong -会员统计信息 - - - -A7F85473-683C-43AF-A05B-652CAB2E7012 -id -id -1522387936 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -4CD43180-AAF6-4721-AEF8-E4E46DECC449 -member_id -member_id -1522389232 -zhenghong -1562382486 -zhenghong -bigint - - -5F23743B-AB44-4746-8BFC-7DCBBAA06EA7 -consume_amount -consume_amount -1522387970 -zhenghong -1562382486 -zhenghong -累计消费金额 -decimal(10,2) -10 -2 - - -FA480055-B9B1-4F35-89EE-5B59D4F27C6D -order_count -order_count -1522388177 -zhenghong -1562382486 -zhenghong -订单数量 -int - - -41A9AF64-F7E4-4157-9696-B1B326531F52 -coupon_count -coupon_count -1522388366 -zhenghong -1562382486 -zhenghong -优惠券数量 -int - - -B405CB3F-AABA-42FB-B993-ED2E905CEB83 -comment_count -comment_count -1522388395 -zhenghong -1562382486 -zhenghong -评价数 -int - - -4518C983-F148-4B54-B8CE-8D48A7687B2D -return_order_count -return_order_count -1522388791 -zhenghong -1562382486 -zhenghong -退货数量 -int - - -9F883E8A-E664-4B06-B7E6-FBC276B92465 -login_count -login_count -1522388804 -zhenghong -1562382486 -zhenghong -登录次数 -int - - -E7B8ED9A-DD62-478D-A714-74E1431FF624 -attend_count -attend_count -1522388885 -zhenghong -1562382486 -zhenghong -关注数量 -int - - -FCFBA510-93D4-4F10-9C27-A5326AE77F59 -fans_count -fans_count -1522388904 -zhenghong -1562382486 -zhenghong -粉丝数量 -int - - -5D8EA6F1-5EB6-4E3A-A1E6-298B94D6AA5C -collect_product_count -collect_product_count -1522388944 -zhenghong -1562382486 -zhenghong -int - - -8108D912-2B5B-48A5-AE66-569DCD6B56C1 -collect_subject_count -collect_subject_count -1522388944 -zhenghong -1562382486 -zhenghong -int - - -A552BF73-4A01-4516-91BA-096B5120A842 -collect_topic_count -collect_topic_count -1522388944 -zhenghong -1562382486 -zhenghong -int - - -2CFA9F03-3FDE-4D90-B8E2-133660061874 -collect_comment_count -collect_comment_count -1522388944 -zhenghong -1562382486 -zhenghong -int - - -DAF153F2-9DE8-4491-B097-DBD88AB522B4 -invite_friend_count -invite_friend_count -1522388944 -zhenghong -1562382486 -zhenghong -int - - -4690BA40-7EF6-44AC-AEB6-5AA0EC0C2F21 -recent_order_time -recent_order_time -1522390747 -zhenghong -1562382486 -zhenghong -最后一次下订单时间 -datetime - - - - -792D18CC-9F6D-4A4E-9502-DE2B1D1AFE32 -Key_1 -Key_1 -1522387936 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -29BD46AF-154D-4A1F-BA3E-23BEC96F5EAE -ums_member_receive_address -ums_member_receive_address -1522390106 -zhenghong -1562382486 -zhenghong -会员收货地址表 - - - -560D1D81-C862-46C5-87F5-CBEED060A01A -id -id -1522390108 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -5AE6D971-9DC7-4358-8828-760932C453C3 -member_id -member_id -1522390434 -zhenghong -1562382486 -zhenghong -bigint - - -A35CB2C7-8F79-4631-9143-13CF6BC34B24 -name -name -1522390108 -zhenghong -1562382486 -zhenghong -收货人名称 -varchar(100) -100 - - -57DD691C-97B6-4204-8B81-6DF177DCCD38 -phone_number -phone_number -1522390108 -zhenghong -1562382486 -zhenghong -varchar(64) -64 - - -C86911E1-482D-4424-B762-21216AC98BCE -default_status -default_status -1522390286 -zhenghong -1562382486 -zhenghong -是否为默认 -int(1) -1 - - -BC23BB01-0553-4FCE-96C5-6FBA7C0766F3 -post_code -post_code -1522390221 -zhenghong -1562382486 -zhenghong -邮政编码 -varchar(100) -100 - - -18B9467A-48CE-4EFE-B2EF-48900F0C18F6 -province -province -1535436971 -zhenghong -1562382486 -zhenghong -省份/直辖市 -varchar(100) -100 - - -809CF26E-3D9D-447C-9C59-EDA823BDD326 -city -city -1535436971 -zhenghong -1562382486 -zhenghong -城市 -varchar(100) -100 - - -B9063B17-E455-489E-AA2E-7A828C373720 -region -region -1535437026 -zhenghong -1562382486 -zhenghong - -varchar(100) -100 - - -171045D6-86DB-49BC-B0DD-959ECE64D53E -detail_address -detail_address -1522390108 -zhenghong -1562382486 -zhenghong -详细地址(街道) -varchar(128) -128 - - - - -F2ABF4A4-73FF-4C73-B7D6-1BC75B165EE8 -Key_1 -Key_1 -1522390409 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -09873879-7B9A-4184-8F02-956EAC9D9FEA -ums_member_login_log -ums_member_login_log -1522390511 -zhenghong -1562382486 -zhenghong -会员登录记录 - - - -0ED0C1CD-2C1B-4420-B7E8-7D5428D467DB -id -id -1522390513 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -A8719C72-D3EC-4537-985A-309E6C89B753 -member_id -member_id -1522390644 -zhenghong -1562382486 -zhenghong -bigint - - -3E78FBBC-2B7E-4F93-A3CD-A4A37C757645 -create_time -create_time -1522390531 -zhenghong -1562382486 -zhenghong -datetime - - -2ACEA0AF-DCA9-43CC-BE3F-8DC9389D7273 -ip -ip -1522390531 -zhenghong -1562382486 -zhenghong -varchar(64) -64 - - -2034048E-45CD-40A3-BBDE-4DE5548D0E29 -city -city -1522390531 -zhenghong -1562382486 -zhenghong -varchar(64) -64 - - -C4FD0108-48C8-43A6-9DB5-2A4625C9DF95 -login_type -login_type -1522390531 -zhenghong -1562382486 -zhenghong -登录类型:0->PC;1->android;2->ios;3->小程序 -int(1) -1 - - -F4B4C6F7-54F1-4998-9CDA-58141C6B94CC -province -province -1522747786 -zhenghong -1562382486 -zhenghong -varchar(64) -64 - - - - -34C05080-93F6-461E-8A3E-1B4F8C4E5E06 -Key_1 -Key_1 -1522390513 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -12540810-5CB2-4C70-B93F-6943458C40CF -ums_member_tag -ums_member_tag -1522390830 -zhenghong -1562382486 -zhenghong -用户标签表 - - - -F548ED6D-4855-41E2-8FDA-D48C8AF48276 -id -id -1522390831 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -3206EDB9-1023-482E-939D-222E339DB150 -name -name -1522390831 -zhenghong -1562382486 -zhenghong -varchar(100) -100 - - -F0DD9721-8701-416F-B694-555C29F3961F -finish_order_count -finish_order_count -1522390854 -zhenghong -1562382486 -zhenghong -自动打标签完成订单数量 -int - - -459C980D-6D76-4165-A0EC-0AED4EB45E1E -finish_order_amount -finish_order_amount -1522390854 -zhenghong -1562382486 -zhenghong -自动打标签完成订单金额 -decimal(10,2) -10 -2 - - - - -AF57F589-4E68-4637-A275-75507AD662B7 -Key_1 -Key_1 -1522390831 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -EE1E4097-AFA1-4C32-BE19-287286F3D90B -ums_member_member_tag_relation -ums_member_member_tag_relation -1522391304 -zhenghong -1562382486 -zhenghong -用户和标签关系表 - - - -AC2CFD0C-F3E0-43DB-B704-FA80199B7311 -id -id -1522391305 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -9EF90851-3443-4184-9DBC-6A6D6AA834E9 -member_id -member_id -1522391366 -zhenghong -1562382486 -zhenghong -bigint - - -9C12A49E-181E-44F6-92C2-58B62EE4A35A -tag_id -tag_id -1522391379 -zhenghong -1562382486 -zhenghong -bigint - - - - -A9CDE250-6D8F-41FB-93DC-1336E38945BD -Key_1 -Key_1 -1522391305 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -A72F52CE-4A19-41BB-AECF-14617E474560 -ums_integration_change_history -ums_integration_change_history -1522396385 -zhenghong -1562382486 -zhenghong -积分变化历史记录表 - - - -BD3D1A86-ED04-41C8-BB25-1FAC48D1F251 -id -id -1522396386 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -903471EB-181B-4390-9C93-4E983FAA94C9 -member_id -member_id -1522396648 -zhenghong -1562382486 -zhenghong -bigint - - -EB2B6E42-071E-4E04-819D-66E8F367C0AD -create_time -create_time -1522396491 -zhenghong -1562382486 -zhenghong -datetime - - -4C96DB64-988F-4066-92AC-D66534D62351 -change_type -change_type -1522396491 -zhenghong -1562382486 -zhenghong -改变类型:0->增加;1->减少 -int(1) -1 - - -AC8F19CE-2D9B-47CD-97F4-7CE0809EA5E8 -change_count -change_count -1522396491 -zhenghong -1562382486 -zhenghong -积分改变数量 -int - - -E075244E-4477-4EEB-9E69-96CCCB3D8DC7 -operate_man -operate_man -1522396534 -zhenghong -1562382486 -zhenghong -操作人员 -varchar(100) -100 - - -F4E92F4B-1F13-4CB1-96FC-858F35C4FA9C -operate_note -operate_note -1522396606 -zhenghong -1562382486 -zhenghong -操作备注 -varchar(200) -200 - - -5DBF699B-A4D4-4EB1-BBDB-54FB6972F19D -source_type -source_type -1522396738 -zhenghong -1562382486 -zhenghong -积分来源:0->购物;1->管理员修改 -int(1) -1 - - - - -C587D3FE-BA18-4EA8-898E-81CBC0AADE57 -Key_1 -Key_1 -1522396386 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -D8E82848-6936-41DC-A2FA-2B84381A4599 -ums_growth_change_history -ums_growth_change_history -1522396385 -zhenghong -1562382486 -zhenghong -成长值变化历史记录表 - - - -DC9F9B75-13DA-4A9B-AF88-868D4B0E4FEE -id -id -1522396386 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -35CDA26C-BAAC-4AA1-A895-D6E3BF43D89E -member_id -member_id -1522396864 -zhenghong -1562382486 -zhenghong -bigint - - -64DD0F10-A252-45B9-8339-D910040D35DD -create_time -create_time -1522396491 -zhenghong -1562382486 -zhenghong -datetime - - -C8F3473D-47A0-46EB-931D-2A66D81D3E64 -change_type -change_type -1522396491 -zhenghong -1562382486 -zhenghong -改变类型:0->增加;1->减少 -int(1) -1 - - -51A7BC09-5943-4FBA-AA78-55C8BEC449A7 -change_count -change_count -1522396491 -zhenghong -1562382486 -zhenghong -积分改变数量 -int - - -CF7E0740-2DBC-48ED-9E73-9C55966AF639 -operate_man -operate_man -1522396534 -zhenghong -1562382486 -zhenghong -操作人员 -varchar(100) -100 - - -A98A65E7-BA15-4C60-AFDB-9C2860DEDE23 -operate_note -operate_note -1522396606 -zhenghong -1562382486 -zhenghong -操作备注 -varchar(200) -200 - - -C8580523-CB92-4A0D-B521-6BB32C555FBA -source_type -source_type -1522396738 -zhenghong -1562382486 -zhenghong -积分来源:0->购物;1->管理员修改 -int(1) -1 - - - - -10F2BB88-77F6-46FD-8ED3-831FE2117D62 -Key_1 -Key_1 -1522396386 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -5B776507-8123-4F1F-BEB9-7A4ADBFB7543 -ums_member_task -ums_member_task -1522397182 -zhenghong -1562382486 -zhenghong -会员任务表 - - - -3F6F3A9B-115A-4756-A588-74ED37683842 -id -id -1522397183 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -4563E43A-30F5-4E6E-A329-FC79BBB9EB6E -name -name -1522397207 -zhenghong -1562382486 -zhenghong -varchar(100) -100 - - -659A4BED-6878-41DC-83C3-A8E4ED1EEE27 -growth -growth -1522397207 -zhenghong -1562382486 -zhenghong -赠送成长值 -int - - -0CF004B0-7A41-43E9-AFE6-620973321AA6 -intergration -intergration -1522397207 -zhenghong -1562382486 -zhenghong -赠送积分 -int - - -E6022CB6-ACA1-4AF8-A24D-CBC4DB1C000F -type -type -1522397207 -zhenghong -1562382486 -zhenghong -任务类型:0->新手任务;1->日常任务 -int(1) -1 - - - - -7083915C-A482-44B1-BB6F-BD52F7A301B3 -Key_1 -Key_1 -1522397183 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -2F369E78-C148-41BB-8703-A8BF078EF915 -ums_member_rule_setting -ums_member_rule_setting -1522397511 -zhenghong -1562382486 -zhenghong -会员积分成长规则表 - - - -496329EC-6544-403D-97D8-7D4DACA83B25 -id -id -1522397511 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -70749BB2-4281-453C-BEF5-B7B602855347 -continue_sign_day -continue_sign_day -1522397551 -zhenghong -1562382486 -zhenghong -连续签到天数 -int - - -EF5CB0ED-A3D7-4E40-BE73-CCD5B1B86CCE -continue_sign_point -continue_sign_point -1522397620 -zhenghong -1562382486 -zhenghong -连续签到赠送数量 -int - - -CACC49C0-62BC-45ED-9E65-86B549DCF845 -consume_per_point -consume_per_point -1522397671 -zhenghong -1562382486 -zhenghong -每消费多少元获取1个点 -decimal(10,2) -10 -2 - - -D8753A80-EA62-4D18-B2AD-6032F714D6CD -low_order_amount -low_order_amount -1522397671 -zhenghong -1562382486 -zhenghong -最低获取点数的订单金额 -decimal(10,2) -10 -2 - - -FFEEDEA4-7E40-4295-B2AE-DBA340659CBF -max_point_per_order -max_point_per_order -1522397799 -zhenghong -1562382486 -zhenghong -每笔订单最高获取点数 -int - - -332E6867-AC69-4D72-AD9C-A38742757553 -type -type -1522397799 -zhenghong -1562382486 -zhenghong -类型:0->积分规则;1->成长值规则 -int(1) -1 - - - - -C9394EBA-2696-406A-B128-8FA1C7BA0FF1 -Key_1 -Key_1 -1522397511 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -160ACF2F-749F-4755-A390-004D59826C04 -ums_integration_consume_setting -ums_integration_consume_setting -1522398032 -zhenghong -1562382486 -zhenghong -积分消费设置 - - - -B05D80A7-309E-49DA-8183-A5F7588B3449 -id -id -1522398033 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -16A95195-1658-4C0C-B334-82DE371A32F3 -deduction_per_amount -deduction_per_amount -1522398071 -zhenghong -1562382486 -zhenghong -每一元需要抵扣的积分数量 -int - - -0A7510A9-101E-46A9-9E83-C0E1A0C2B6A4 -max_percent_per_order -max_percent_per_order -1522398150 -zhenghong -1562382486 -zhenghong -每笔订单最高抵用百分比 -int - - -968AD4EB-F331-4147-A08E-8A135167BF0A -use_unit -use_unit -1522398194 -zhenghong -1562382486 -zhenghong -每次使用积分最小单位100 -int - - -01842BC7-79CA-4046-B0C9-3FA260C3DBFA -coupon_status -coupon_status -1522398253 -zhenghong -1562382486 -zhenghong -是否可以和优惠券同用;0->不可以;1->可以 -int(1) -1 - - - - -D60CD662-E137-486B-A7E9-025BDF4BC744 -Key_1 -Key_1 -1522398033 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -8CC5C00B-1841-420B-BC00-520E3C71947F -ums_role -ums_role -1538200619 -zhenghong -1562382486 -zhenghong -后台用户角色表 - - - -1F214AD8-72E3-4E97-A5DC-81B3D9645E53 -id -id -1538201005 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -6FCCF048-5245-47D7-880D-A9C4A3D81B8E -name -name -1538201019 -zhenghong -1562382486 -zhenghong -名称 -varchar(100) -100 - - -B0F71952-AD0E-4B22-A837-2F81EF33A004 -description -description -1538201019 -zhenghong -1562382486 -zhenghong -描述 -varchar(500) -500 - - -A4561CEF-09F4-4F13-B80C-1755ED1D0105 -admin_count -admin_count -1538201117 -zhenghong -1562382486 -zhenghong -后台用户数量 -int - - -ABB19FDA-441A-4D4B-9321-EDBCF74B90BC -create_time -create_time -1538201155 -zhenghong -1562382486 -zhenghong -创建时间 -datetime - - -78BFADB8-111C-46DA-BBE9-692DF94AD73F -status -status -1538201193 -zhenghong -1562382486 -zhenghong -启用状态:0->禁用;1->启用 -1 -int(1) -1 - - -69CF0C9E-829E-49D6-9D75-83875648D5FB -sort -sort -1538201211 -zhenghong -1562382486 -zhenghong -0 -int - - - - -8EC68A13-D739-47AF-A3DD-B81FBAEED1E3 -Key_1 -Key_1 -1538201019 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -E80F0501-7FF5-4DF4-B90F-BEEF4C3CD30D -ums_permission -ums_permission -1538201545 -zhenghong -1562382486 -zhenghong -后台用户权限表 - - - -1BBBF216-5981-4AFF-87D8-F479351B9CB3 -id -id -1538201548 -zhenghong -1562382486 -zhenghong -bigint -1 -1 -{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0= -{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0= - - - - -C3DD12F3-1D8F-4FAE-9802-76CC7E077FF8 -pid -pid -1538202362 -zhenghong -1562382486 -zhenghong -父级权限id -bigint - - -22EC35C3-48D9-4970-AD88-AFB26DB4D6B6 -name -name -1538201932 -zhenghong -1562382486 -zhenghong -名称 -varchar(100) -100 - - -4B677732-18CA-4680-AF89-4B2E3255E258 -value -value -1538201932 -zhenghong -1562382486 -zhenghong -权限值 -varchar(200) -200 - - -FC1E2670-2A89-4CED-896D-7C3A7251C861 -icon -icon -1538201932 -zhenghong -1562382486 -zhenghong -图标 -varchar(500) -500 - - -E2704E2D-8FDC-49F3-BBF2-957FC095AD6D -type -type -1538202064 -zhenghong -1562382486 -zhenghong -权限类型:0->目录;1->菜单;2->按钮(接口绑定权限) -int(1) -1 - - -47FE9D0A-328B-4B18-A3AC-1590B14CC688 -uri -uri -1538202208 -zhenghong -1562382486 -zhenghong -前端资源路径 -varchar(200) -200 - - -862E1803-FB48-4481-95C8-1772E2CA5C42 -status -status -1538202092 -zhenghong -1562382486 -zhenghong -启用状态;0->禁用;1->启用 -int(1) -1 - - -C526DD1C-112D-4EBD-9A0D-AC7870CF938B -create_time -create_time -1538202257 -zhenghong -1562382486 -zhenghong -创建时间 -datetime - - -E9B10EC9-6880-441D-85F2-A2C9E55F9A62 -sort -sort -1538202257 -zhenghong -1562382486 -zhenghong -排序 -int - - - - -237B43FC-8E7E-4F09-B1D8-6A0B2DE4BCA2 -Key_1 -Key_1 -1538201548 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -6C41C4DC-50C3-4028-B1DD-30ABD900BACD -ums_admin_role_relation -ums_admin_role_relation -1538202419 -zhenghong -1562382486 -zhenghong -后台用户和角色关系表 - - - -4AEF2852-5DD6-49F1-83F6-1BF6F0B6F87E -id -id -1538202420 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -BD68E4A6-B827-4757-BA14-D7357FC214E4 -admin_id -admin_id -1538202471 -zhenghong -1562382486 -zhenghong -bigint - - -BB037113-41F9-4A4B-A55C-B923C7A1017F -role_id -role_id -1538202492 -zhenghong -1562382486 -zhenghong -bigint - - - - -29BFC683-1D81-48A5-9959-B2A1B37D2D8D -Key_1 -Key_1 -1538202420 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -DC5DD2FB-AA8F-4A04-8FEA-D6DD03E85593 -ums_role_permission_relation -ums_role_permission_relation -1538202537 -zhenghong -1562382486 -zhenghong -后台用户角色和权限关系表 - - - -7B891766-CB7D-4557-8CEE-07FB0A0E238F -id -id -1538202538 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -9E8951DB-2179-4C29-A18B-307F60547AF5 -role_id -role_id -1538202586 -zhenghong -1562382486 -zhenghong -bigint - - -26F0D498-A318-4FCF-916C-2C3CB9CF8948 -permission_id -permission_id -1538202588 -zhenghong -1562382486 -zhenghong -bigint - - - - -52491D5D-2A3C-47DC-8526-B32A39FA74A1 -Key_1 -Key_1 -1538202538 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -CC002214-56A7-4758-987B-96B4E93EA3F6 -ums_admin_permission_relation -ums_admin_permission_relation -1538202617 -zhenghong -1562382486 -zhenghong -后台用户和权限关系表(除角色中定义的权限以外的加减权限) - - - -B04FBBE3-6EF0-428B-80CD-970CB4853E1A -id -id -1538202860 -zhenghong -1562382486 -zhenghong -bigint -1 -1 - - -0A33A1E8-C75D-45FF-B266-59B45A61255E -admin_id -admin_id -1538202927 -zhenghong -1562382486 -zhenghong -bigint - - -1A2D7C2B-5966-403A-A9AC-408E1BC1A7F8 -permission_id -permission_id -1538202929 -zhenghong -1562382486 -zhenghong -bigint - - -F4377B90-FC4D-4D8F-82F0-1046999515F0 -type -type -1538203070 -zhenghong -1562382486 -zhenghong -int(1) -1 - - - - -E25CBEFC-FC32-48DE-B34C-77E14FDA930F -Key_1 -Key_1 -1538202860 -zhenghong -1562382486 -zhenghong - - - - - - - - - - - - -5EF2C88D-3B9B-4349-AF45-A4645115EB42 -Reference_46 -Reference_46 -1522304178 -zhenghong -1522304178 -zhenghong -0..* -1 -1 - - - - - - - - - - - -11F6A499-DC48-490F-8A7F-E08339D1A68E -1522304178 -zhenghong -1522304178 -zhenghong - - - - - - - - - - -DCA0D0C2-36F4-456C-AF80-16BBE67C66D9 -Reference_47 -Reference_47 -1522386868 -zhenghong -1522386868 -zhenghong -0..* -1 -1 - - - - - - - - - - - -1FEF4E49-6022-4D29-9E36-2F9B33393979 -1522386868 -zhenghong -1522386868 -zhenghong - - - - - - - - - - -E51FA904-7330-4B20-983D-360FAC015519 -Reference_48 -Reference_48 -1522387461 -zhenghong -1522387461 -zhenghong -0..* -1 -1 - - - - - - - - - - - -05A2684C-8822-4777-89CB-D10E7CC9B326 -1522387461 -zhenghong -1522387461 -zhenghong - - - - - - - - - - -BB627589-799D-4450-B660-9567C8E4E170 -Reference_50 -Reference_50 -1522389232 -zhenghong -1522389232 -zhenghong -0..* -1 -1 - - - - - - - - - - - -C0F162B5-948E-422C-A3D2-49332E83A284 -1522389232 -zhenghong -1522389232 -zhenghong - - - - - - - - - - -AC8BDDD3-912B-4CFF-A927-0ECE1A764640 -Reference_51 -Reference_51 -1522390434 -zhenghong -1522390434 -zhenghong -0..* -1 -1 - - - - - - - - - - - -BD741524-8DB4-42EF-831F-9E8BB2F09DDC -1522390434 -zhenghong -1522390434 -zhenghong - - - - - - - - - - -86125066-0A52-40D3-ADBC-D983A4FBE2F4 -Reference_52 -Reference_52 -1522390644 -zhenghong -1522390644 -zhenghong -0..* -1 -1 - - - - - - - - - - - -9FDA14DF-3A98-492C-97FA-4778B7A27443 -1522390644 -zhenghong -1522390644 -zhenghong - - - - - - - - - - -D2E4834C-137D-42E6-8F6B-86445D0B28FB -Reference_53 -Reference_53 -1522391366 -zhenghong -1522391366 -zhenghong -0..* -1 -1 - - - - - - - - - - - -29B57A03-A33E-4C70-8E21-BF873D1EB970 -1522391366 -zhenghong -1522391366 -zhenghong - - - - - - - - - - -1E3B87CB-2333-476E-AC25-675B445FEF9C -Reference_54 -Reference_54 -1522391379 -zhenghong -1562382486 -zhenghong -0..* -1 -1 - - - - - - - - - - - -FF484B9A-72D7-4214-8E3B-6AE2133DEA21 -1522391379 -zhenghong -1562382486 -zhenghong - - - - - - - - - - -A20965D8-E019-4885-85CE-8423D2B63F6E -Reference_55 -Reference_55 -1522396648 -zhenghong -1522396648 -zhenghong -0..* -1 -1 - - - - - - - - - - - -ECFF82A7-0704-4AA7-92C2-028C46DADCEA -1522396648 -zhenghong -1522396648 -zhenghong - - - - - - - - - - -517FF0F9-B03A-485C-B3BD-67B6AA722F41 -Reference_56 -Reference_56 -1522396864 -zhenghong -1522396864 -zhenghong -0..* -1 -1 - - - - - - - - - - - -A2BBBA18-2D70-4871-90F0-4FD1D438E46F -1522396864 -zhenghong -1522396864 -zhenghong - - - - - - - - - - -772E9D9B-DEB1-4CE1-BD0E-AAF59D1A6721 -Reference_68 -Reference_68 -1538202362 -zhenghong -1538202362 -zhenghong -0..* -1 -1 - - - - - - - - - - - -4D35AE6A-5F25-4FBD-A306-74594C3A16C2 -1538202362 -zhenghong -1538202362 -zhenghong - - - - - - - - - - -2000A9C4-8D16-451A-8066-448C9E785970 -Reference_69 -Reference_69 -1538202471 -zhenghong -1538202471 -zhenghong -0..* -1 -1 - - - - - - - - - - - -F72A295B-7809-4913-959B-D94ABFEDED49 -1538202471 -zhenghong -1538202471 -zhenghong - - - - - - - - - - -4A7A0BCE-3CCF-4609-882F-A0F0494AB271 -Reference_70 -Reference_70 -1538202492 -zhenghong -1538202492 -zhenghong -0..* -1 -1 - - - - - - - - - - - -15217561-EF59-4787-A0B7-7E2C91B82DB0 -1538202492 -zhenghong -1538202492 -zhenghong - - - - - - - - - - -3032B07D-A458-4032-A7ED-9ED848E19B95 -Reference_71 -Reference_71 -1538202586 -zhenghong -1538202586 -zhenghong -0..* -1 -1 - - - - - - - - - - - -0DB614A1-7D11-4CED-A674-C7CDB19B0E07 -1538202586 -zhenghong -1538202586 -zhenghong - - - - - - - - - - -D0863990-40B1-4F75-9656-3F5D9F667162 -Reference_72 -Reference_72 -1538202588 -zhenghong -1538202588 -zhenghong -0..* -1 -1 - - - - - - - - - - - -EAFA9689-0F63-4988-A927-2AAFF29989A5 -1538202588 -zhenghong -1538202588 -zhenghong - - - - - - - - - - -D5795CA5-2C51-4D56-A16B-DEB9919BD3A0 -Reference_73 -Reference_73 -1538202927 -zhenghong -1538202927 -zhenghong -0..* -1 -1 - - - - - - - - - - - -80BF4511-34A7-462B-BEE0-53AC7A1CF1F1 -1538202927 -zhenghong -1538202927 -zhenghong - - - - - - - - - - -D9A57053-8524-4E66-AE91-F9FF82E6A151 -Reference_74 -Reference_74 -1538202929 -zhenghong -1538202929 -zhenghong -0..* -1 -1 - - - - - - - - - - - -AE0DFA41-C617-4D3C-84B4-6813E3400044 -1538202929 -zhenghong -1538202929 -zhenghong - - - - - - - - - - - - -E04379F5-828E-48CC-9538-0843FE3C696A -PUBLIC -PUBLIC -1562382314 -zhenghong -1562382314 -zhenghong - - - - -51AF1659-1C8D-4CE1-A967-59D2FC12A159 -MySQL 5.0 -MYSQL50 -1562382314 -zhenghong -1562382314 -zhenghong -file:///%_DBMS%/mysql50.xdb -F4F16ECD-F2F1-4006-AF6F-638D5C65F35E -4BA9F647-DAB1-11D1-9944-006097355D9B -1276524678 - - - - - - - - - - \ No newline at end of file diff --git a/document/pos/app.pos b/document/pos/app.pos new file mode 100644 index 00000000..d6d8d258 --- /dev/null +++ b/document/pos/app.pos @@ -0,0 +1 @@ +{"diagram":{"image":{"x":0,"width":200,"y":0,"pngdata":"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVR4nO3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GXHmAAFMgHIEAAAAAElFTkSuQmCC","height":200},"elements":{"leftChildren":[],"children":[{"parent":"root","lineStyle":{"randomLineColor":"#02ACF4"},"children":[{"parent":"7fdaa671c089","children":[],"id":"d4cbdc7edd21","title":"轮播广告"},{"parent":"7fdaa671c089","children":[{"parent":"c7e6739c4ae6","children":[],"id":"80d6ce7cfc76","title":"专题"},{"parent":"c7e6739c4ae6","children":[],"id":"0a11d36e446c650a","title":"话题"},{"parent":"c7e6739c4ae6","children":[],"id":"340e90c4e51d1649","title":"优选"},{"parent":"c7e6739c4ae6","children":[],"id":"970241b50cc05678","title":"特惠"}],"collapsed":true,"id":"c7e6739c4ae6","title":"功能模块"},{"parent":"7fdaa671c089","note":"对应后台品牌推荐功能","children":[{"parent":"dc18f5472ea5e02b","note":"LOGO、名称、商品数量","children":[],"id":"976dfe6b0150ec33","title":"数据列表"},{"parent":"dc18f5472ea5e02b","note":"品牌大图、品牌信息、品牌故事、相关商品","children":[],"id":"00bfa14a38826172","title":"品牌详情"}],"collapsed":true,"id":"dc18f5472ea5e02b","title":"品牌制造商直供"},{"parent":"7fdaa671c089","note":"对应后台秒杀活动列表功能","children":[{"parent":"45034b1150312f55","children":[],"id":"643411ea6b72ccf2","title":"秒杀商品列表"}],"collapsed":true,"id":"45034b1150312f55","title":"秒杀专区"},{"parent":"7fdaa671c089","note":"对应后台新品推荐功能","children":[{"parent":"d6b972cbcee22066","note":"图片、名称、副标题","children":[],"id":"edaf29b58df1243f","title":"商品列表"}],"collapsed":true,"id":"d6b972cbcee22066","title":"新鲜好物"},{"parent":"7fdaa671c089","note":"对应后台人气推荐功能","children":[{"parent":"ac88582e15c2eef0","children":[],"id":"3eb8632e3642988d","title":"商品列表"}],"collapsed":true,"id":"ac88582e15c2eef0","title":"人气推荐"},{"parent":"7fdaa671c089","children":[{"parent":"8814bf9e11d41af7","children":[],"id":"32f37b2047b77095","title":"商品列表"}],"collapsed":true,"id":"8814bf9e11d41af7","title":"猜你喜欢"}],"collapsed":false,"id":"7fdaa671c089","title":"首页"},{"parent":"root","lineStyle":{"randomLineColor":"#7549C5"},"children":[{"parent":"a42d702e0ee9","note":"支持二级分类,显示LOGO及名称","children":[],"id":"9c88e281f046a24f","title":"分类"},{"parent":"a42d702e0ee9","children":[{"parent":"31c90c493bf05852","note":"图片、名称、副标题、价格、销量","children":[],"id":"e299829aa4810002","title":"数据列表"},{"parent":"31c90c493bf05852","note":"综合排序、销量优先、价格","children":[],"id":"bf810f293421a8ef","title":"排序"},{"parent":"31c90c493bf05852","note":"按分类筛选","children":[],"id":"0f4a6ff1d79bb2fb","title":"筛选"}],"collapsed":true,"id":"31c90c493bf05852","title":"商品列表"},{"parent":"a42d702e0ee9","children":[{"parent":"76628b9be31b73be","note":"商品相册图片、名称、副标题、价格、销量、库存、浏览量","children":[],"id":"d872c72a1dc426b1","title":"商品信息"},{"parent":"76628b9be31b73be","note":"对应商品SKU属性","children":[],"id":"1cf72f8a190ade90","title":"购买类型"},{"parent":"76628b9be31b73be","note":"对应后台商品参数","children":[],"id":"ae359f289b98ce59","title":"商品参数"},{"parent":"76628b9be31b73be","note":"当前商品可用优惠券","children":[],"id":"10b2645b29d024c9","title":"优惠券"},{"parent":"76628b9be31b73be","note":"当前商品优惠促销","children":[],"id":"00379bbe8835d448","title":"促销活动"},{"parent":"76628b9be31b73be","children":[],"id":"119f628802e49bc5","title":"服务"},{"parent":"76628b9be31b73be","note":"图片、名称、首字母","children":[],"id":"ef11951399728cdb","title":"品牌信息"},{"parent":"76628b9be31b73be","note":"富文本展示详情","children":[],"id":"ff50586bb4b941db","title":"图文详情"},{"parent":"76628b9be31b73be","children":[{"parent":"289f074cbc434a5a","children":[],"id":"50eef6dd3036e365","title":"首页"},{"parent":"289f074cbc434a5a","children":[],"id":"ac7f421c8669af01","title":"购物车"},{"parent":"289f074cbc434a5a","children":[],"id":"09ecbaf3dc66e6bd","title":"收藏"},{"parent":"289f074cbc434a5a","children":[],"id":"3785b6a08250a08b","title":"立即购买"},{"parent":"289f074cbc434a5a","children":[],"id":"b8eef396c751402e","title":"加入购物车"}],"id":"289f074cbc434a5a","title":"操作"}],"collapsed":true,"id":"76628b9be31b73be","title":"商品详情"}],"collapsed":false,"id":"a42d702e0ee9","title":"商品"},{"parent":"root","lineStyle":{"randomLineColor":"#0FBAB0"},"children":[{"parent":"d0697f697cfe","note":"商品图片、名称、规格、价格、数量","children":[],"id":"afa515b5f473036f","title":"数据列表"},{"parent":"d0697f697cfe","children":[],"id":"ce4e9b0baea515bf","title":"修改数量"},{"parent":"d0697f697cfe","children":[],"id":"9d64a3747a5a4dbb","title":"清空"},{"parent":"d0697f697cfe","children":[],"id":"8779753e63722334","title":"计算价格"},{"parent":"d0697f697cfe","children":[],"id":"15fed91c2bce2f7a","title":"去结算"}],"collapsed":false,"id":"d0697f697cfe","title":"购物车"},{"parent":"root","lineStyle":{"randomLineColor":"#DD489D"},"children":[{"parent":"fb065ff81be1","note":"从购物车中的去结算功能创建","children":[{"parent":"ca04b711e7949548","children":[],"id":"2f2dccd584a60ad4","title":"选择收货地址"},{"parent":"ca04b711e7949548","children":[],"id":"cafd7b8dc18e5d0a","title":"商品信息"},{"parent":"ca04b711e7949548","children":[],"id":"aac14770026fdf5c","title":"选择优惠券"},{"parent":"ca04b711e7949548","children":[],"id":"6131425fc61d3668","title":"积分抵扣"},{"parent":"ca04b711e7949548","note":"最终价格=商品合计+运费-活动优惠-优惠券-积分抵扣","children":[],"id":"83d59dcc9997c7c8","title":"价格计算"},{"parent":"ca04b711e7949548","children":[],"id":"a9211cfedc3109bc","title":"备注"}],"collapsed":true,"id":"ca04b711e7949548","title":"创建订单"},{"parent":"fb065ff81be1","children":[{"parent":"11fe4c9727debc8f","children":[],"id":"373000cec66405d8","title":"支付金额"},{"parent":"11fe4c9727debc8f","children":[],"id":"df24adab6221244a","title":"支付方式"},{"parent":"11fe4c9727debc8f","children":[],"id":"3f2edb4c5007d3b9","title":"确认支付"}],"collapsed":true,"id":"11fe4c9727debc8f","title":"订单支付"},{"parent":"fb065ff81be1","note":"创建日期、订单状态、商品信息、商品数量、价格","children":[],"id":"92a1c16202e9f0d5","title":"订单列表"},{"parent":"fb065ff81be1","children":[{"parent":"ae74ea4a5868936d","note":"会员下单后未付款状态","children":[{"parent":"e05261e1c823b51f","children":[],"id":"1d762ed3603fb5c6","title":"取消订单"},{"parent":"e05261e1c823b51f","children":[],"id":"83766b00b43fc138","title":"立即付款"}],"collapsed":true,"id":"e05261e1c823b51f","title":"待付款"},{"parent":"ae74ea4a5868936d","note":"会员付款后,后台以执行发货操作状态","children":[{"parent":"6e2cbaae4d6a3f59","children":[],"id":"98ed3cb660c4e10b","title":"查看物流"},{"parent":"6e2cbaae4d6a3f59","children":[],"id":"b0e179cf55d5761c","title":"确认收货"}],"collapsed":true,"id":"6e2cbaae4d6a3f59","title":"待收货"},{"parent":"ae74ea4a5868936d","note":"会员确认收货后的状态","children":[{"parent":"6bfda684d01cb0f0","children":[],"id":"071cd90a7aa7a8fb","title":"删除"},{"parent":"6bfda684d01cb0f0","children":[],"id":"84e48c0894bd2b7b","title":"评价商品"}],"id":"6bfda684d01cb0f0","title":"已完成"},{"parent":"ae74ea4a5868936d","note":"会员主动取消或订单超时自动取消","children":[{"parent":"80aa20d5928f9bbd","children":[],"id":"6b566d423f377756","title":"删除"}],"id":"80aa20d5928f9bbd","title":"已取消"}],"collapsed":true,"id":"ae74ea4a5868936d","title":"操作"},{"parent":"fb065ff81be1","children":[{"parent":"9000a6310c88009d","note":"订单状态、收货人信息、商品信息、价格信息、订单信息","children":[],"id":"d62bce8b55d78507","title":"显示信息"},{"parent":"9000a6310c88009d","note":"同订单操作","children":[],"id":"90d27cfe885775be","title":"操作"},{"parent":"9000a6310c88009d","note":"订单完成后可申请售后","children":[],"id":"632a21481391ada1","title":"申请售后"}],"collapsed":true,"id":"9000a6310c88009d","title":"订单详情"}],"collapsed":false,"id":"fb065ff81be1","title":"订单"},{"parent":"root","lineStyle":{"randomLineColor":"#3D5EC2"},"children":[{"parent":"3667506bcbfd","note":"头像、昵称、积分、成长值、优惠券数量","children":[],"id":"5d90a0c0a702d882","title":"会员信息"},{"parent":"3667506bcbfd","children":[{"parent":"bf2cf63ba26fb5ad","note":"名称、有效期、面值、类型","children":[],"id":"2c500f9d25ff3e51","title":"数据列表"},{"parent":"bf2cf63ba26fb5ad","note":"未使用、已使用、已过期","children":[],"id":"b4fdb51f26c1a41b","title":"优惠券状态"}],"collapsed":true,"id":"bf2cf63ba26fb5ad","title":"优惠券"},{"parent":"3667506bcbfd","children":[{"parent":"a0267688cbae9ec0","children":[],"id":"37a223bdd73eb3ea","title":"全部订单"},{"parent":"a0267688cbae9ec0","children":[],"id":"fed835b16b137e97","title":"待付款"},{"parent":"a0267688cbae9ec0","children":[],"id":"3b367f84d51347aa","title":"待收货"},{"parent":"a0267688cbae9ec0","children":[],"id":"04150d3e5153ce52","title":"退款/售后"}],"collapsed":true,"id":"a0267688cbae9ec0","title":"订单功能"},{"parent":"3667506bcbfd","children":[{"parent":"062bb5a6671bf97e","note":"地址、姓名、手机号","children":[],"id":"a9958c3f8e401d5a","title":"数据列表"},{"parent":"062bb5a6671bf97e","note":"姓名、手机号、邮政编码、所在区域、详细地址、设为默认","children":[],"id":"1592f39d4d06e3b2","title":"添加"},{"parent":"062bb5a6671bf97e","children":[{"parent":"751e583216317c3b","children":[],"id":"25fe335a7e0e0c84","title":"编辑"},{"parent":"751e583216317c3b","children":[],"id":"134e058cf79508d2","title":"删除"}],"id":"751e583216317c3b","title":"操作"}],"collapsed":true,"id":"062bb5a6671bf97e","title":"地址管理"},{"parent":"3667506bcbfd","note":"商品浏览记录","children":[{"parent":"a45a5ad8ef617b35","note":"图片、名称、副标题、价格、浏览时间","children":[],"id":"00483209f028560f","title":"数据列表"},{"parent":"a45a5ad8ef617b35","children":[],"id":"557b86dd53b224af","title":"清空"}],"collapsed":true,"id":"a45a5ad8ef617b35","title":"我的足迹"},{"parent":"3667506bcbfd","note":"关注的品牌","children":[{"parent":"e34b41b47e132443","note":"图片、名称","children":[],"id":"d531e0e51b1d8dec","title":"数据列表"},{"parent":"e34b41b47e132443","children":[],"id":"e99cc7d31e3ac24a","title":"清空"}],"collapsed":true,"id":"e34b41b47e132443","title":"我的关注"},{"parent":"3667506bcbfd","note":"收藏的商品","children":[{"parent":"ed018e9dbdd38b57","note":"图片、名称、副标题、价格","children":[],"id":"9e4222c443f50033","title":"数据列表"},{"parent":"ed018e9dbdd38b57","children":[],"id":"f93a5ed18eaa86da","title":"清空"}],"collapsed":true,"id":"ed018e9dbdd38b57","title":"我的收藏"},{"parent":"3667506bcbfd","children":[],"id":"1738b184bfa4e83d","title":"我的评价"},{"parent":"3667506bcbfd","children":[{"parent":"f20d65c05cf2cbb5","children":[],"id":"319f7a22b8a9ce0f","title":"个人资料"},{"parent":"f20d65c05cf2cbb5","children":[],"id":"24e455087b466678","title":"收货地址"},{"parent":"f20d65c05cf2cbb5","children":[],"id":"7ad27808644bcee9","title":"实名认证"},{"parent":"f20d65c05cf2cbb5","children":[],"id":"10c0510057542792","title":"消息推送"},{"parent":"f20d65c05cf2cbb5","children":[],"id":"81aa86bdc6413543","title":"清除缓存"},{"parent":"f20d65c05cf2cbb5","children":[],"id":"2053022f05ad0ed2","title":"关于"},{"parent":"f20d65c05cf2cbb5","children":[],"id":"755460577b262df1","title":"检查更新"},{"parent":"f20d65c05cf2cbb5","children":[],"id":"55077fb110be218a","title":"退出登录"}],"collapsed":true,"id":"f20d65c05cf2cbb5","title":"设置"}],"id":"3667506bcbfd","title":"我的"}],"root":true,"theme":"delicate_caihong","id":"root","title":"移动商城功能","version":489,"structure":"mind_free"}},"meta":{"exportTime":"2022-11-11 16:38:21","member":"5a210b2ee4b04f355d337104","diagramInfo":{"creator":"5a210b2ee4b04f355d337104","created":"2022-11-11 15:03:54","modified":"2022-11-11 16:36:49","title":"移动商城功能","category":"mind_free"},"id":"636df3da6376897f2b17dcee","type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git a/document/pos/oms.pos b/document/pos/oms.pos new file mode 100644 index 00000000..eacfdc85 --- /dev/null +++ b/document/pos/oms.pos @@ -0,0 +1 @@ +{"diagram":{"image":{"x":0,"width":200,"y":0,"pngdata":"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVR4nO3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GXHmAAFMgHIEAAAAAElFTkSuQmCC","height":200},"elements":{"leftChildren":[],"children":[{"parent":"root","lineStyle":{"randomLineColor":"#FD5155"},"children":[{"parent":"4dcde504af651f71e1d7","note":"关键字、收货人、提交时间、顶替状态、订单分类、订单来源
","children":[],"collapsed":false,"id":"fde4bfb4e88c67ad8428","title":"筛选搜索"},{"parent":"4dcde504af651f71e1d7","note":"编号、订单编号、提交时间、用户账号、订单金额、支付方式、订单来源、订单状态","children":[],"collapsed":false,"id":"c05c9c5a7bd74b1a5df2","title":"数据列表"},{"parent":"4dcde504af651f71e1d7","children":[{"parent":"0b56a27aacfcf9e91429","children":[],"id":"6a1a5efa50bb1ef7","title":"查看订单"},{"parent":"0b56a27aacfcf9e91429","children":[],"id":"150f177484de884c3ab8","title":"订单关闭"},{"parent":"0b56a27aacfcf9e91429","children":[],"id":"99c1cc50d8297c2a98d6","title":"订单发货"},{"parent":"0b56a27aacfcf9e91429","children":[],"id":"2981f6b3025222a8c841","title":"订单跟踪"},{"parent":"0b56a27aacfcf9e91429","children":[],"id":"20c190cbe89762be15a3","title":"删除订单"}],"collapsed":true,"id":"0b56a27aacfcf9e91429","title":"操作"},{"parent":"4dcde504af651f71e1d7","children":[{"parent":"6bb87975d955845bde69","children":[],"id":"4aca17ee5d455b621b79","title":"订单状态"},{"parent":"6bb87975d955845bde69","children":[{"parent":"105e887f8df84ebf2d4d","note":"收货人姓名、手机号码、邮政编码、所在区域、详细地址
","children":[],"collapsed":false,"id":"9f82b9bdf00ec9689ef9","title":"修改收货人信息"},{"parent":"105e887f8df84ebf2d4d","note":"运费、折扣金额","children":[],"collapsed":false,"id":"38f2b97e619f795829bc","title":"修改费用信息"},{"parent":"105e887f8df84ebf2d4d","children":[],"id":"1edfe0c33b5e5bf1c33e","title":"发送站内信"},{"parent":"105e887f8df84ebf2d4d","children":[],"id":"a1a00b251a06108ffd1d","title":"关闭订单"},{"parent":"105e887f8df84ebf2d4d","children":[],"id":"6047f31b701bb59cbedb","title":"备注订单"}],"collapsed":true,"id":"105e887f8df84ebf2d4d","title":"修改订单"},{"parent":"6bb87975d955845bde69","children":[],"id":"87c30eccd19c19b2fa21","title":"基本信息"},{"parent":"6bb87975d955845bde69","children":[],"id":"0fd2e05525ef81ccc71b","title":"收货人信息"},{"parent":"6bb87975d955845bde69","children":[],"id":"16bad996586dfb702684","title":"商品信息"},{"parent":"6bb87975d955845bde69","children":[],"id":"b7a1eb937d5a1dd829a5","title":"费用信息"},{"parent":"6bb87975d955845bde69","children":[],"id":"33ed8f34f0dcc1fd884e","title":"操作信息"}],"collapsed":true,"id":"6bb87975d955845bde69","title":"查看订单"},{"parent":"4dcde504af651f71e1d7","children":[{"parent":"ad4f7b3904a3a28913c0","children":[],"id":"ff914c59e0c91f5f","title":"批量发货"},{"parent":"ad4f7b3904a3a28913c0","children":[],"id":"ef2970a00683951a","title":"关闭订单"},{"parent":"ad4f7b3904a3a28913c0","children":[],"id":"9a0958bcf8cee447","title":"删除订单"}],"collapsed":true,"id":"ad4f7b3904a3a28913c0","title":"批量操作"}],"collapsed":false,"id":"4dcde504af651f71e1d7","title":"订单列表"},{"parent":"root","lineStyle":{"randomLineColor":"#7549C5"},"children":[{"parent":"6c3a4a0c039217397d8b","children":[],"id":"462128b57dd56195ce9c","title":"秒杀订单自动关闭时间"},{"parent":"6c3a4a0c039217397d8b","children":[],"id":"62967ff650b3f3d7b7ce","title":"正常订单自动关闭时间"},{"parent":"6c3a4a0c039217397d8b","children":[],"id":"c8d3f6fe2e16b1f9f8b0","title":"发货超过时间自动完成"},{"parent":"6c3a4a0c039217397d8b","children":[],"id":"313a5d6ebc9763801649","title":"订单完成多少天自动结束,不能申请售后"},{"parent":"6c3a4a0c039217397d8b","children":[],"id":"46b11b98a6e1122437eb","title":"订单完成超过多少天自动5星好评"}],"collapsed":false,"id":"6c3a4a0c039217397d8b","title":"订单设置"},{"parent":"root","lineStyle":{"randomLineColor":"#80BA4C"},"children":[{"parent":"a20f045e6427362f64f9","note":"服务单号、处理状态、申请时间、操作人员、处理时间","children":[],"id":"cce77724d1c597545635","title":"筛选搜索"},{"parent":"a20f045e6427362f64f9","note":"服务单号、申请时间、用户账号、退款金额、申请状态、处理时间","children":[],"id":"4dd4d82ac01825481bbb","title":"数据列表"},{"parent":"a20f045e6427362f64f9","children":[{"parent":"af645e85dfaab5269abc","children":[],"id":"f041b7db8f60966eb590","title":"退货商品"},{"parent":"af645e85dfaab5269abc","children":[{"parent":"7dd3937fa8c74d5b98b3","children":[],"id":"fb9fa92d8bcb4e85cace","title":"申请信息"},{"parent":"7dd3937fa8c74d5b98b3","children":[],"id":"cc01cd801b7518e46c6d","title":"退货信息"},{"parent":"7dd3937fa8c74d5b98b3","children":[],"id":"aac18616f56b8cc59070","title":"处理备注"},{"parent":"7dd3937fa8c74d5b98b3","note":"待处理、退货中、已完成、已拒绝","children":[],"id":"0a57c06092e8fe42","title":"处理状态"}],"id":"7dd3937fa8c74d5b98b3","title":"服务单信息"},{"parent":"af645e85dfaab5269abc","children":[{"parent":"1ef8f832bcdfc56ee072","children":[],"id":"a674fb6aaca4f93e87d3","title":"确认退货"},{"parent":"1ef8f832bcdfc56ee072","children":[],"id":"2b7c411c7e2b0614d12a","title":"确认收货"},{"parent":"1ef8f832bcdfc56ee072","children":[],"id":"e7edcdd4dd2207a4241f","title":"拒绝退货"}],"id":"1ef8f832bcdfc56ee072","title":"操作"}],"collapsed":true,"id":"af645e85dfaab5269abc","title":"查看详情"}],"collapsed":false,"id":"a20f045e6427362f64f9","title":"退货申请处理"},{"parent":"root","lineStyle":{"randomLineColor":"#0F80C4"},"children":[{"parent":"62069253fd52e628ed10","note":"编号、原因类型、排序、是否可用、添加时间","children":[],"id":"3ce7706ba9d874208588","title":"数据列表"},{"parent":"62069253fd52e628ed10","children":[],"id":"b5a558064d36c48d583d","title":"添加"},{"parent":"62069253fd52e628ed10","children":[{"parent":"a9dab4eefa926d49d008","children":[],"id":"77c1129eafd5b997","title":"编辑"},{"parent":"a9dab4eefa926d49d008","children":[],"id":"2c7b162acfb710a0","title":"删除"}],"id":"a9dab4eefa926d49d008","title":"操作"}],"collapsed":true,"id":"62069253fd52e628ed10","title":"退货原因设置"}],"root":true,"theme":"delicate_caihong","id":"root","title":"订单模块","version":289,"structure":"mind_free"}},"meta":{"exportTime":"2022-11-11 16:37:52","member":"5a210b2ee4b04f355d337104","diagramInfo":{"creator":"5a210b2ee4b04f355d337104","created":"2022-11-10 16:48:02","modified":"2022-11-11 10:37:32","title":"订单模块","category":"mind_free"},"id":"636cbac26376897f2b155b9b","type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git a/document/pos/pms.pos b/document/pos/pms.pos new file mode 100644 index 00000000..a680c1dd --- /dev/null +++ b/document/pos/pms.pos @@ -0,0 +1 @@ +{"diagram":{"image":{"x":0,"width":200,"y":0,"pngdata":"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVR4nO3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GXHmAAFMgHIEAAAAAElFTkSuQmCC","height":200},"elements":{"leftChildren":[],"children":[{"parent":"root","lineStyle":{"randomLineColor":"#BE49C4"},"children":[{"parent":"b0193c3521eaf8a10ed6","note":"名称、货号、分类、品牌、上架状态、审核状态","children":[],"collapsed":false,"id":"afd97cc98a82ffb89757","title":"筛选搜索"},{"parent":"b0193c3521eaf8a10ed6","note":"编号、商品图片、商品名称、价格\\货号、标签、排序、SKU库存、销量、审核状态","children":[],"collapsed":false,"id":"12612e018e9a0526d448","title":"数据列表"},{"parent":"b0193c3521eaf8a10ed6","children":[{"parent":"9e3d797bcab8e3f942bd","children":[],"id":"c1e1fc1bc48de3aa","title":"查看"},{"parent":"9e3d797bcab8e3f942bd","children":[],"id":"c4f7563e8e6919d1","title":"编辑"},{"parent":"9e3d797bcab8e3f942bd","children":[],"id":"a213bd6c064b5cda","title":"日志"},{"parent":"9e3d797bcab8e3f942bd","children":[],"id":"47bdb6d8dffb2ee9","title":"删除"}],"collapsed":true,"id":"9e3d797bcab8e3f942bd","title":"操作"},{"parent":"b0193c3521eaf8a10ed6","children":[{"parent":"16914295265bdffc1064","children":[],"id":"5b6717e914b56339","title":"上下架"},{"parent":"16914295265bdffc1064","children":[],"id":"a1b7055145994b96","title":"推荐"},{"parent":"16914295265bdffc1064","children":[],"id":"1917ac40ba9149eb","title":"新品"},{"parent":"16914295265bdffc1064","children":[],"id":"213632c8ddfe63fa","title":"转移分类"}],"collapsed":true,"id":"16914295265bdffc1064","title":"批量操作"}],"collapsed":false,"id":"b0193c3521eaf8a10ed6","title":"商品列表"},{"parent":"root","lineStyle":{"randomLineColor":"#02ACF4"},"children":[{"parent":"4578b2205b9273061cb6","children":[{"parent":"150b7fae65c85ffc65c1","children":[],"id":"01e1bfb6ac3f2a34665f","title":"商品分类"},{"parent":"150b7fae65c85ffc65c1","children":[],"id":"8548078d1c762a336c8f","title":"商品名称"},{"parent":"150b7fae65c85ffc65c1","children":[],"id":"54c42179cfe1777184e8","title":"副标题"},{"parent":"150b7fae65c85ffc65c1","children":[],"id":"c2b450a1cb3f6360613b","title":"商品品牌"},{"parent":"150b7fae65c85ffc65c1","children":[],"id":"dd50b3150f3cf2c98159","title":"商品介绍"},{"parent":"150b7fae65c85ffc65c1","children":[],"id":"bad04fb4c667270ef0bc","title":"商品货号"},{"parent":"150b7fae65c85ffc65c1","children":[],"id":"628556f625622f778633","title":"商品价格"},{"parent":"150b7fae65c85ffc65c1","children":[],"id":"bde367e24e1ecec5","title":"商品库存"}],"collapsed":true,"id":"150b7fae65c85ffc65c1","title":"填写商品信息"},{"parent":"4578b2205b9273061cb6","children":[{"parent":"eb970a0ca5d901effeaa","children":[],"id":"ba7a238e5b6b0f3d","title":"积分"},{"parent":"eb970a0ca5d901effeaa","children":[],"id":"add191749e24973d","title":"成长值"},{"parent":"eb970a0ca5d901effeaa","children":[],"id":"12d896a0ff03f042","title":"上下架状态"},{"parent":"eb970a0ca5d901effeaa","children":[{"parent":"be5f56e1a733a494","children":[],"id":"d8e05c5688ffb4e4","title":"新品"},{"parent":"be5f56e1a733a494","children":[],"id":"a6e8e9c8dd6a1840","title":"推荐"}],"collapsed":true,"id":"be5f56e1a733a494","title":"商品标签"},{"parent":"eb970a0ca5d901effeaa","children":[],"id":"4790d2c6ef88240c","title":"服务保证"},{"parent":"eb970a0ca5d901effeaa","children":[],"id":"058db134cf6a8b86","title":"商品详细页内容"},{"parent":"eb970a0ca5d901effeaa","children":[{"parent":"c71531fc19b4628c","children":[],"id":"053ba4d08bbcb9e8","title":"特惠促销"},{"parent":"c71531fc19b4628c","children":[],"id":"a401f6ab1582e34d","title":"会员价格"},{"parent":"c71531fc19b4628c","children":[],"id":"877d93b933c03a3a","title":"阶梯价格"},{"parent":"c71531fc19b4628c","children":[],"id":"a42342a809f6614e","title":"满减价格"}],"collapsed":true,"id":"c71531fc19b4628c","title":"优惠方式"}],"collapsed":true,"id":"eb970a0ca5d901effeaa","title":"填写商品促销"},{"parent":"4578b2205b9273061cb6","children":[{"parent":"f39ae019cc793b23a550","children":[],"id":"80e8ec4a8d3f6f765ce8","title":"属性类型"},{"parent":"f39ae019cc793b23a550","children":[{"parent":"7338aeb3f9d92cc8","children":[],"id":"657ba1546025c843","title":"SKU属性"},{"parent":"7338aeb3f9d92cc8","children":[],"id":"94ddd46d7a557420","title":"价格"},{"parent":"7338aeb3f9d92cc8","children":[],"id":"75c053323a443450","title":"库存"}],"id":"7338aeb3f9d92cc8","title":"商品规格"},{"parent":"f39ae019cc793b23a550","children":[],"id":"d10f746e017ce12f4af7","title":"属性图片"},{"parent":"f39ae019cc793b23a550","children":[],"id":"51f591c54dd6b2f45cf3","title":"商品参数"},{"parent":"f39ae019cc793b23a550","note":"可上传5张,第一张为主图","children":[],"id":"b78ee701cb4d30b8046e","title":"商品相册"},{"parent":"f39ae019cc793b23a550","note":"使用富文本编辑器,直接批量上传切图","children":[{"parent":"0e0d32d1de9c0d89f090","children":[],"id":"c5ca9a1fc3808321","title":"电脑端详情"},{"parent":"0e0d32d1de9c0d89f090","children":[],"id":"91a414ef18e602d8","title":"移动端详情"}],"id":"0e0d32d1de9c0d89f090","title":"商品详情"}],"collapsed":true,"id":"f39ae019cc793b23a550","title":"填写商品属性"},{"parent":"4578b2205b9273061cb6","children":[{"parent":"410f282a6a011559cd7e","children":[],"id":"5e1055a2c14e6ac1333b","title":"关联专题"},{"parent":"410f282a6a011559cd7e","children":[],"id":"c0aa38689d4f6dd98e89","title":"关联优选"}],"collapsed":true,"id":"410f282a6a011559cd7e","title":"选择商品关联"}],"collapsed":false,"id":"4578b2205b9273061cb6","title":"添加商品"},{"parent":"root","lineStyle":{"randomLineColor":"#7549C5"},"children":[{"parent":"7a6d301f9278f2630c2a","note":"编号、分类名、级别、数量、单位、导航栏、是否显示、排序","children":[],"collapsed":false,"id":"38ae08dc614fc8af1ea5","title":"数据列表"},{"parent":"7a6d301f9278f2630c2a","children":[{"parent":"e4c0b0ee759251371957","children":[],"id":"2290b6f08e405c8a","title":"查看下级"},{"parent":"e4c0b0ee759251371957","children":[],"id":"54f789fb49bb8b5c","title":"转移商品"}],"collapsed":true,"id":"e4c0b0ee759251371957","title":"设置"},{"parent":"7a6d301f9278f2630c2a","children":[{"parent":"99c5cec73311b9484c09","children":[],"id":"1d9a161ad7407b18","title":"编辑"},{"parent":"99c5cec73311b9484c09","children":[],"id":"934b181044de07b1","title":"删除"}],"collapsed":true,"id":"99c5cec73311b9484c09","title":"操作"},{"parent":"7a6d301f9278f2630c2a","note":"分类名称、上级分类、数量单位、排序、是否显示、是否显示在导航栏、分类图标、筛选属性、关键字、分类描述","children":[],"collapsed":false,"id":"8442f155f8cce6ee1fd3","title":"添加分类"}],"collapsed":false,"id":"7a6d301f9278f2630c2a","title":"商品分类"},{"parent":"root","lineStyle":{"randomLineColor":"#FD5155"},"children":[{"parent":"39f28c9e5a207c982746","children":[{"parent":"e88242482ef0584009bd","note":"编号、名称、属性数量、参数数量","children":[],"collapsed":false,"id":"9a8cae1b0cb9eecab2d9","title":"数据列表"},{"parent":"e88242482ef0584009bd","children":[{"parent":"5a1a503374d30b7377e0","note":"编号、属性名称、商品类型、属性是否可选、属性录入方式、可选值列表、排序、操作","children":[],"id":"d53c5691019e3c4a1d2c","title":"属性或属性列表"},{"parent":"5a1a503374d30b7377e0","children":[{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"420dcd0e046932e4efbd","title":"属性名称"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"60cc4e6c1d2b731ecce5","title":"商品类型"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"eeec949bd8e1d5bd705d","title":"分类筛选样式"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"8e1dbcb9a5a927d63cc8","title":"能否进行检索"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"222a6dc9d98482784a28","title":"相同属性值的商品是否关联"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"a62a03df100eb0261d76","title":"属性是否可选"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"60f0394a180cfb7d8d38","title":"该属性值的录入方式"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"735a214b97ab1edffdda","title":"属性值可选值列表"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"0af81046f778a255766f","title":"是否支持手动新增"},{"parent":"4c9c4b6411a35464eb2b","children":[],"id":"4d397f72061fd8b994a4","title":"属性排序"}],"collapsed":true,"id":"4c9c4b6411a35464eb2b","title":"添加属性或参数"}],"collapsed":false,"id":"5a1a503374d30b7377e0","title":"设置"},{"parent":"e88242482ef0584009bd","children":[{"parent":"172f19e2a225095b","children":[],"id":"606c1e69b5bd85a3","title":"编辑"},{"parent":"172f19e2a225095b","children":[],"id":"fe364906958220e9","title":"删除"}],"id":"172f19e2a225095b","title":"操作"},{"parent":"e88242482ef0584009bd","children":[{"parent":"6eefb44138a35973b7c7","children":[],"id":"269fe5284562ba30","title":"编辑"},{"parent":"6eefb44138a35973b7c7","children":[],"id":"18cb5d523283607e","title":"删除"}],"collapsed":true,"id":"6eefb44138a35973b7c7","title":"操作"}],"collapsed":true,"id":"e88242482ef0584009bd","title":"商品类型"},{"parent":"39f28c9e5a207c982746","children":[],"id":"d7b41c3bc685d007","title":"添加类型"}],"collapsed":false,"id":"39f28c9e5a207c982746","title":"商品类型"},{"parent":"root","lineStyle":{"randomLineColor":"#0F80C4"},"children":[{"parent":"7d93cc9472646cd2f5eb","note":"关键字","children":[],"id":"805f7bafc84c6c2dbafd","title":"筛选搜索"},{"parent":"7d93cc9472646cd2f5eb","note":"编号、品牌名称、品牌首字母、排序、品牌制造商、是否显示、商品数量及评价数量","children":[],"id":"3dfb4349b642c35a850b","title":"数据列表"},{"parent":"7d93cc9472646cd2f5eb","children":[{"parent":"6c942115a541b0753b68","children":[],"id":"f19a25d8cb05949c","title":"显示"},{"parent":"6c942115a541b0753b68","children":[],"id":"5e62d6928cee3dfe","title":"隐藏"}],"collapsed":true,"id":"6c942115a541b0753b68","title":"批量操作"},{"parent":"7d93cc9472646cd2f5eb","children":[{"parent":"7698f312546878c2891f","children":[],"id":"7ee6e839884c9312","title":"品牌名称"},{"parent":"7698f312546878c2891f","children":[],"id":"58bf03255dc50aa1","title":"品牌首字母"},{"parent":"7698f312546878c2891f","children":[],"id":"02e832a254208c19","title":"品牌LOGO"},{"parent":"7698f312546878c2891f","children":[],"id":"9a5fd84ed7a1a2a6","title":"品牌专区大图"},{"parent":"7698f312546878c2891f","children":[],"id":"2365ee6d54460ce5","title":"品牌故事"},{"parent":"7698f312546878c2891f","children":[],"id":"824cde85b57ede2a","title":"排序"},{"parent":"7698f312546878c2891f","children":[],"id":"23839f67608c5e67","title":"是否显示"},{"parent":"7698f312546878c2891f","children":[],"id":"2e941dacd17c024a","title":"是否为品牌制造商"}],"collapsed":true,"id":"7698f312546878c2891f","title":"添加品牌"}],"collapsed":false,"id":"7d93cc9472646cd2f5eb","title":"品牌管理"}],"root":true,"theme":"delicate_caihong","id":"root","title":"商品模块","version":422,"structure":"mind_free"}},"meta":{"exportTime":"2022-11-11 16:38:12","member":"5a210b2ee4b04f355d337104","diagramInfo":{"creator":"5a210b2ee4b04f355d337104","created":"2022-11-10 16:07:31","modified":"2022-11-11 10:37:08","title":"商品模块","category":"mind_free"},"id":"636cb1431e085317c6a36b06","type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git a/document/pos/sms.pos b/document/pos/sms.pos new file mode 100644 index 00000000..baf4f01c --- /dev/null +++ b/document/pos/sms.pos @@ -0,0 +1 @@ +{"diagram":{"image":{"x":0,"width":200,"y":0,"pngdata":"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVR4nO3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GXHmAAFMgHIEAAAAAElFTkSuQmCC","height":200},"elements":{"leftChildren":[],"children":[{"parent":"root","lineStyle":{"randomLineColor":"#FCB52A"},"children":[{"parent":"545764a25a8548f0ddf3","note":"关键字","children":[],"id":"9a3ca43a68aa95e2","title":"筛选搜索"},{"parent":"545764a25a8548f0ddf3","note":"编号、活动标题、活动状态、开始时间、结束时间、上下线状态","children":[],"collapsed":false,"id":"a0e352814d1082aafd1f","title":"数据列表"},{"parent":"545764a25a8548f0ddf3","note":"活动标题、开始时间、结束时间、上下线状态","children":[],"id":"8b248c2d5fae2bcdf4d8","title":"添加活动"},{"parent":"545764a25a8548f0ddf3","children":[{"parent":"6db653dfba561795","children":[],"id":"b71e19827bba9f4f","title":"编辑"},{"parent":"6db653dfba561795","children":[],"id":"ae8dafe8f0a89fc0","title":"删除"}],"collapsed":true,"id":"6db653dfba561795","title":"操作"},{"parent":"545764a25a8548f0ddf3","children":[{"parent":"6db45d3fe49ce8b0860d","children":[{"parent":"f777bf175fe6a34e0760","children":[],"id":"fd3d69627249b6e05f79","title":"显示商品列表"}],"collapsed":false,"id":"f777bf175fe6a34e0760","title":"显示时间段列表"},{"parent":"6db45d3fe49ce8b0860d","children":[{"parent":"d8517e5dc277361b","note":"编号、商品名称、货号、商品价格、剩余数量,设置秒杀价格、秒杀数量、限购数量、排序","children":[],"id":"2323b83d9a361b94","title":"数据列表"},{"parent":"d8517e5dc277361b","note":"直接展示上架商品信息","children":[],"id":"ccdb30253f6b63d9","title":"添加商品"}],"id":"d8517e5dc277361b","title":"选择商品"}],"collapsed":true,"id":"6db45d3fe49ce8b0860d","title":"设置商品"},{"parent":"545764a25a8548f0ddf3","children":[{"parent":"fb60edaba84f13c6bc2d","note":"编号、名称、开始时间、结束时间、启用状态","children":[],"id":"c03b022a719a0a770462","title":"数据列表"},{"parent":"fb60edaba84f13c6bc2d","note":"名称、开始时间、结束时间、启用状态","children":[],"id":"0aabec9051d8f19e","title":"添加时间段"},{"parent":"fb60edaba84f13c6bc2d","children":[{"parent":"d20e8ec6263ebadeef80","children":[],"id":"b86daff650a125dc","title":"编辑"},{"parent":"d20e8ec6263ebadeef80","children":[],"id":"3159b3d5db632aa1","title":"删除"}],"collapsed":true,"id":"d20e8ec6263ebadeef80","title":"操作"}],"collapsed":true,"id":"fb60edaba84f13c6bc2d","title":"秒杀时间段列表"}],"collapsed":false,"id":"545764a25a8548f0ddf3","title":"秒杀活动列表"},{"parent":"root","lineStyle":{"randomLineColor":"#FD5155"},"children":[{"parent":"42b2258bf954dabd6df8","note":"优惠券名称、优惠券类型","children":[],"id":"867a06d3c21fe70e","title":"筛选搜索"},{"parent":"42b2258bf954dabd6df8","note":"编号、名称、类型、可使用商品、使用门槛、面值、适用平台、有效期、状态","children":[],"id":"c061afe595360693","title":"数据列表"},{"parent":"42b2258bf954dabd6df8","note":"名称、类型、可使用商品、使用门槛、面值、适用平台、有效期、状态、总发行量、每人限领、领取时间、备注","children":[],"id":"3565eac051844296","title":"添加"},{"parent":"42b2258bf954dabd6df8","children":[{"parent":"c648f7624727f8fc","children":[],"id":"ae53acc6fc8b556e","title":"编辑"},{"parent":"c648f7624727f8fc","children":[],"id":"3847c6afc720c970","title":"删除"}],"collapsed":true,"id":"c648f7624727f8fc","title":"操作"},{"parent":"42b2258bf954dabd6df8","children":[{"parent":"8c1359eba32f936f","children":[],"id":"bc0a934e179877cc","title":"优惠券信息"},{"parent":"8c1359eba32f936f","note":"使用状态、订单编号","children":[],"id":"51466c9d2e5b4460","title":"筛选搜索"},{"parent":"8c1359eba32f936f","note":"优惠码、领取会员、领取方式、领取时间、当前状态、使用时间、订单编号
","children":[],"id":"78f03b618041d6cb","title":"优惠券领取、使用历史"}],"collapsed":true,"id":"8c1359eba32f936f","title":"查看"}],"collapsed":false,"id":"42b2258bf954dabd6df8","title":"优惠券列表"},{"parent":"root","lineStyle":{"randomLineColor":"#7549C5"},"children":[{"parent":"dc46ba4e39fdab24","note":"品牌名称、推荐状态","children":[],"id":"58f25242fff694cf","title":"筛选搜索"},{"parent":"dc46ba4e39fdab24","note":"编号、品牌名称、是否推荐、排序、状态","children":[],"id":"f46070a601e81e48","title":"数据列表"},{"parent":"dc46ba4e39fdab24","children":[{"parent":"def2896b07bb19fc","children":[],"id":"9b1c6dbe6f6bf443","title":"设置排序"},{"parent":"def2896b07bb19fc","children":[],"id":"8ee429ee489a4e6d","title":"删除"}],"collapsed":true,"id":"def2896b07bb19fc","title":"操作"},{"parent":"dc46ba4e39fdab24","note":"从品牌列表选择品牌并添加","children":[],"id":"1c8b467481694967","title":"选择品牌"}],"id":"dc46ba4e39fdab24","title":"品牌推荐"},{"parent":"root","lineStyle":{"randomLineColor":"#F88A35"},"children":[{"parent":"22ebf929115001a4","note":"商品名称、推荐状态","children":[],"id":"49a40f8396367eb9","title":"筛选搜索"},{"parent":"22ebf929115001a4","note":"编号、商品名称、是否推荐、排序、状态","children":[],"id":"a487e128c49dc7dc","title":"数据列表"},{"parent":"22ebf929115001a4","children":[{"parent":"e6cb76fe705b439c","children":[],"id":"42ad60941e2ae867","title":"设置排序"},{"parent":"e6cb76fe705b439c","children":[],"id":"23f9ba432308714b","title":"删除"}],"collapsed":true,"id":"e6cb76fe705b439c","title":"操作"},{"parent":"22ebf929115001a4","note":"从商品列表选择商品添加","children":[],"id":"f5ca69c68f34d53f","title":"选择商品"}],"id":"22ebf929115001a4","title":"新品推荐"},{"parent":"root","lineStyle":{"randomLineColor":"#F88A35"},"children":[{"parent":"bc48cdc5b44c","note":"商品名称、推荐状态","children":[],"id":"8c6293e3bd90","title":"筛选搜索"},{"parent":"bc48cdc5b44c","note":"编号、商品名称、是否推荐、排序、状态","children":[],"id":"df2bb98bb7d3","title":"数据列表"},{"parent":"bc48cdc5b44c","children":[{"parent":"ab3036201d87","children":[],"id":"0463fc3a452e","title":"设置排序"},{"parent":"ab3036201d87","children":[],"id":"fc793528c4f9","title":"删除"}],"collapsed":true,"id":"ab3036201d87","title":"操作"},{"parent":"bc48cdc5b44c","note":"从商品列表选择商品添加","children":[],"id":"2debbb1fc80d","title":"选择商品"}],"id":"bc48cdc5b44c","title":"人气推荐"},{"parent":"root","lineStyle":{"randomLineColor":"#F88A35"},"children":[{"parent":"71d9a7e1542c","note":"专题名称、推荐状态","children":[],"id":"18bf1418a142","title":"筛选搜索"},{"parent":"71d9a7e1542c","note":"编号、专题名称、是否推荐、排序、状态","children":[],"id":"84b73f86d56d","title":"数据列表"},{"parent":"71d9a7e1542c","children":[{"parent":"c8374dd2c84f","children":[],"id":"cbabf9b4bda6","title":"设置排序"},{"parent":"c8374dd2c84f","children":[],"id":"335f63d58965","title":"删除"}],"collapsed":true,"id":"c8374dd2c84f","title":"操作"},{"parent":"71d9a7e1542c","note":"从专题列表选择商品添加","children":[],"id":"8ee248bc24ca","title":"选择专题"}],"id":"71d9a7e1542c","title":"专题推荐"},{"parent":"root","lineStyle":{"randomLineColor":"#DD489D"},"children":[{"parent":"e7481c76661d765a","note":"广告名称、广告位置、到期时间","children":[],"id":"4ee2072e0faa15db","title":"筛选搜索"},{"parent":"e7481c76661d765a","note":"编号、广告名称、广告位置、广告图片、时间、上下线状态、点击次数、生成订单
","children":[],"id":"c67fd79aa7efe4d2","title":"数据列表"},{"parent":"e7481c76661d765a","children":[{"parent":"1f992e078b526d5d","children":[],"id":"c8b980dc234876c5","title":"编辑"},{"parent":"1f992e078b526d5d","children":[],"id":"55f98013908eba09","title":"删除"}],"collapsed":true,"id":"1f992e078b526d5d","title":"操作"},{"parent":"e7481c76661d765a","note":"广告名称、广告位置、广告图片、开始时间、到期时间、上下线状态、排序、广告链接、广告备注","children":[],"id":"1daeff8cf3eed6b7","title":"添加广告"}],"id":"e7481c76661d765a","title":"广告列表"}],"root":true,"theme":"delicate_caihong","id":"root","title":"营销模块","version":282,"structure":"mind_free"}},"meta":{"exportTime":"2022-11-11 16:38:30","member":"5a210b2ee4b04f355d337104","diagramInfo":{"creator":"5a210b2ee4b04f355d337104","created":"2022-11-11 10:39:06","modified":"2022-11-11 14:47:44","title":"营销模块","category":"mind_free"},"id":"636db5ca1e085317c6a53f00","type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git a/document/pos/ums.pos b/document/pos/ums.pos new file mode 100644 index 00000000..4e144fd4 --- /dev/null +++ b/document/pos/ums.pos @@ -0,0 +1 @@ +{"diagram":{"image":{"x":0,"width":200,"y":0,"pngdata":"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVR4nO3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GXHmAAFMgHIEAAAAAElFTkSuQmCC","height":200},"elements":{"leftChildren":[],"children":[{"parent":"root","lineStyle":{"randomLineColor":"#BE49C4"},"children":[{"parent":"25ad9c354241","note":"账号、姓名","children":[],"id":"a534c5c1431d","title":"筛选搜索"},{"parent":"25ad9c354241","note":"账号、姓名、邮箱、添加时间、最后登录、是否启用","children":[],"id":"515a998fac21","title":"数据列表"},{"parent":"25ad9c354241","note":"账号、姓名、邮箱、密码、备注、是否启用","children":[],"id":"a642fabedf3e6922","title":"添加"},{"parent":"25ad9c354241","children":[{"parent":"bf1e014fe073d036","children":[],"id":"4afff98845184f42","title":"编辑"},{"parent":"bf1e014fe073d036","children":[],"id":"e2c445685b95cb5f","title":"删除"}],"collapsed":true,"id":"bf1e014fe073d036","title":"操作"},{"parent":"25ad9c354241","note":"显示可选角色分配、支持多选","children":[],"id":"a1e34965a8c6fbf5","title":"分配角色"}],"id":"25ad9c354241","title":"用户列表"},{"parent":"root","lineStyle":{"randomLineColor":"#F88A35"},"children":[{"parent":"952f1880cc08","note":"角色名称","children":[],"id":"b517aa49a95c","title":"筛选搜索"},{"parent":"952f1880cc08","note":"编号、角色名称、描述、用户数、添加时间、是否启用","children":[],"id":"22842dfed78c","title":"数据列表"},{"parent":"952f1880cc08","note":"角色名称、描述、是否启用","children":[],"id":"5bb3fe6364cc1e40","title":"添加"},{"parent":"952f1880cc08","children":[{"parent":"9b2645159961ff82","children":[],"id":"83862e5d17271f78","title":"编辑"},{"parent":"9b2645159961ff82","children":[],"id":"1272ef7243e92251","title":"删除"}],"collapsed":true,"id":"9b2645159961ff82","title":"操作"},{"parent":"952f1880cc08","note":"树形结构显示菜单,可多选","children":[],"id":"eb1e75861d5cae27","title":"分配菜单"},{"parent":"952f1880cc08","note":"按类别显示权限,可多选","children":[],"id":"3b7aba1f8357e6a1","title":"分配资源"}],"id":"952f1880cc08","title":"角色列表"},{"parent":"root","lineStyle":{"randomLineColor":"#0FBAB0"},"children":[{"parent":"3b3191eb67b3","note":"编号、菜单名称、菜单级别、前端名称、前端图标、是否显示、排序、设置","children":[],"id":"42fc29e1f387","title":"数据列表"},{"parent":"3b3191eb67b3","note":"菜单名称、上级菜单、前端名称、前端图标、是否显示、排序","children":[],"id":"00626f4222e6","title":"添加"},{"parent":"3b3191eb67b3","children":[{"parent":"3a776c35d2f021e3","children":[],"id":"f3b3af838cfef8d4","title":"编辑"},{"parent":"3a776c35d2f021e3","children":[],"id":"6d6b093b4438d8f8","title":"删除"}],"collapsed":true,"id":"3a776c35d2f021e3","title":"操作"}],"id":"3b3191eb67b3","title":"菜单列表"},{"parent":"root","lineStyle":{"randomLineColor":"#7549C5"},"children":[{"parent":"b4546a3318d6","note":"资源名称、资源路径、资源分类","children":[],"id":"412b02a45895aefd","title":"筛选搜索"},{"parent":"b4546a3318d6","note":"编号、资源名称、资源路径、描述、添加时间","children":[],"id":"0623f40ddcecbc96","title":"数据列表"},{"parent":"b4546a3318d6","children":[{"parent":"5b3fa9a2f9cc0cd5","note":"编号、名称、创建时间、排序","children":[],"id":"1b293388acc42812","title":"数据列表"},{"parent":"5b3fa9a2f9cc0cd5","note":"名称、排序","children":[],"id":"be7ac6bcba2ac473","title":"添加"},{"parent":"5b3fa9a2f9cc0cd5","children":[{"parent":"75d57415ae3b9703","children":[],"id":"7249e10514bc74a0","title":"编辑"},{"parent":"75d57415ae3b9703","children":[],"id":"75832b8fb6058bb4","title":"删除"}],"id":"75d57415ae3b9703","title":"操作"}],"collapsed":true,"id":"5b3fa9a2f9cc0cd5","title":"资源分类"},{"parent":"b4546a3318d6","note":"资源名称、资源路径、资源分类、描述","children":[],"id":"52df9a20039f228b","title":"添加"},{"parent":"b4546a3318d6","children":[{"parent":"dfe91e487b4ce974","children":[],"id":"9fa0b4dea66f1650","title":"编辑"},{"parent":"dfe91e487b4ce974","children":[],"id":"2480ed5cd92998ae","title":"删除"}],"collapsed":true,"id":"dfe91e487b4ce974","title":"操作"}],"id":"b4546a3318d6","title":"资源列表"}],"root":true,"theme":"delicate_caihong","id":"root","title":"权限模块","version":125,"structure":"mind_right","summaries":[]}},"meta":{"exportTime":"2022-11-11 16:38:03","member":"5a210b2ee4b04f355d337104","diagramInfo":{"creator":"5a210b2ee4b04f355d337104","created":"2022-11-11 14:49:00","modified":"2022-11-11 15:01:34","title":"权限模块","category":"mind_free"},"id":"636df05c5653bb3a847979ce","type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git "a/document/pos/\344\270\213\345\215\225\346\265\201\347\250\213.pos" "b/document/pos/\344\270\213\345\215\225\346\265\201\347\250\213.pos" deleted file mode 100644 index 02a093a8..00000000 --- "a/document/pos/\344\270\213\345\215\225\346\265\201\347\250\213.pos" +++ /dev/null @@ -1 +0,0 @@ -{"diagram":{"image":{"height":2382,"pngdata":"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","width":438,"y":-30,"x":-30},"elements":{"page":{"showGrid":true,"gridSize":15,"orientation":"portrait","height":2440,"backgroundColor":"transparent","width":1050,"padding":20},"theme":{"linker":{"lineStyle":{"lineColor":"50,50,50","lineWidth":2},"fontStyle":{"bold":false,"color":"50,50,50","fontFamily":"Arial","italic":false,"size":13}},"name":"colorful_yellow","shape":{"lineStyle":{"lineColor":"50,50,50","lineWidth":2},"fillStyle":{"color":"255,255,237","type":"solid"},"fontStyle":{"bold":false,"color":"50,50,50","fontFamily":"Arial","italic":false,"size":13}}},"elements":{"16c13135f33fbb":{"id":"16c13135f33fbb","to":{"id":"16c13136abfa5b","y":1340.7999877929688,"angle":1.5707963267948968,"x":116.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1329.7999877929688,"x":116.59999084472656},{"y":1329.7999877929688,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c1312e958a92","y":1318.7999877929688,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":30}},"16c130703e9576":{"textBlock":[{"position":{"w":"w-20","y":"h*0.13","h":"h*0.75","x":"10"},"text":"判断购物车中商品是否都有库存"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c130703e94b6","category":"default","name":"序号","value":"","type":"number"},{"id":"16c130703e967a","category":"default","name":"名称","value":"","type":"string"},{"id":"16c130703e9314","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c130703e978c","category":"default","name":"连接","value":"","type":"link"},{"id":"16c130703e9fb1","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c130703e9576","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","title":"菱形","name":"diamond","fillStyle":{},"path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":244.5999984741211,"h":80,"angle":0,"x":56.59999084472656,"zindex":4}},"16c130d5ac6c4c":{"textBlock":[{"position":{"w":"w-20","h":"h*0.75","y":"h*0.13","x":"10"},"text":"判断积分是否可用"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c130de9e6208","category":"default","name":"序号","value":"","type":"number"},{"id":"16c130de9e6d66","category":"default","name":"名称","value":"","type":"string"},{"id":"16c130de9e6328","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c130de9e687d","category":"default","name":"连接","value":"","type":"link"},{"id":"16c130de9e6b34","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c130d5ac6c4c","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","name":"diamond","path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":827.6000061035156,"zindex":19,"x":66.59999084472656}},"16c130f86951fc":{"id":"16c130f86951fc","to":{"id":"16c13076307444","y":515.6000022888184,"angle":0,"x":258.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":862.6000061035156,"x":212.59999084472656},{"y":515.6000022888184,"x":212.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c130d5ac6c4c","y":862.6000061035156,"angle":3.141592653589794,"x":166.59999084472656},"group":"","props":{"zindex":22}},"16c1316f298908":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"修改优惠券的使用状态"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c1316f29874","category":"default","name":"序号","value":"","type":"number"},{"id":"16c1316f29887f","category":"default","name":"名称","value":"","type":"string"},{"id":"16c1316f298491","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c1316f2988e5","category":"default","name":"连接","value":"","type":"link"},{"id":"16c1316f298d2f","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1316f298908","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":50,"y":1829.800048828125,"zindex":40,"x":66.59999084472656}},"16c13076307444":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"结束,提示下单失败信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c1307630797","category":"default","name":"序号","value":"","type":"number"},{"id":"16c130763077a4","category":"default","name":"名称","value":"","type":"string"},{"id":"16c13076307091","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c130763075d9","category":"default","name":"连接","value":"","type":"link"},{"id":"16c1307630790a","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c13076307444","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":80,"y":480.60000228881836,"h":70,"angle":0,"x":258.59999084472656,"zindex":6}},"16c1307e4f8622":{"textBlock":[{"position":{"w":"w-20","h":"h*0.75","y":"h*0.13","x":"10"},"text":"判断是否使用了优惠券"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c130850e8009","category":"default","name":"序号","value":"","type":"number"},{"id":"16c130850e8239","category":"default","name":"名称","value":"","type":"string"},{"id":"16c130850e87e4","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c130850e8985","category":"default","name":"连接","value":"","type":"link"},{"id":"16c130850e810b","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1307e4f8622","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","name":"diamond","path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":370.5999984741211,"zindex":9,"x":66.59999084472656}},"16c13187cfda75":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"下单成功"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c13187cfdef8","category":"default","name":"序号","value":"","type":"number"},{"id":"16c13187cfda5c","category":"default","name":"名称","value":"","type":"string"},{"id":"16c13187cfd71b","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c13187cfde05","category":"default","name":"连接","value":"","type":"link"},{"id":"16c13187cfdb9f","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c13187cfda75","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":40,"y":2242.800048828125,"zindex":49,"x":66.59999084472656}},"16c13177077671":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"扣除会员所用积分"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c13177077da6","category":"default","name":"序号","value":"","type":"number"},{"id":"16c13177077ed4","category":"default","name":"名称","value":"","type":"string"},{"id":"16c1317707753e","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c1317707731a","category":"default","name":"连接","value":"","type":"link"},{"id":"16c13177077294","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c13177077671","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":2034.800048828125,"zindex":45,"x":66.59999084472656}},"16c1317f388fa9":{"id":"16c1317f388fa9","to":{"id":"16c1317fefd154","y":2143.800048828125,"angle":1.5707963267948968,"x":116.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":2124.300048828125,"x":116.59999084472656},{"y":2124.300048828125,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c13177077671","y":2104.800048828125,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":46}},"16c130d4ebf343":{"to":{"id":"16c130d5ac6c4c","angle":1.5707963267948968,"y":827.6000061035156,"x":116.59999084472656},"id":"16c130d4ebf343","linkerType":"broken","text":"是","lineStyle":{},"name":"linker","from":{"id":"16c130cd1ced0c","angle":4.71238898038469,"y":784.5999984741211,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":806.1000022888184,"x":116.59999084472656},{"y":806.1000022888184,"x":116.59999084472656}],"group":"","props":{"zindex":18}},"16c1312f7d7791":{"to":{"id":"16c1312e958a92","angle":1.5707963267948968,"y":1248.7999877929688,"x":116.59999084472656},"id":"16c1312f7d7791","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c1311763d8c9","angle":4.71238898038469,"y":1217.7999877929688,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":1233.2999877929688,"x":116.59999084472656},{"y":1233.2999877929688,"x":116.59999084472656}],"group":"","props":{"zindex":29}},"16c1314f050e2f":{"id":"16c1314f050e2f","to":{"id":"16c1314f88e673","y":1546.800048828125,"angle":1.5707963267948968,"x":116.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1529.3000183105469,"x":116.59999084472656},{"y":1529.3000183105469,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c13144cc33ae","y":1511.7999877929688,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":34}},"16c1311763d8c9":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"进行每个商品的库存锁定"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c1311763d799","category":"default","name":"序号","value":"","type":"number"},{"id":"16c1311763d77","category":"default","name":"名称","value":"","type":"string"},{"id":"16c1311763d30f","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c1311763d885","category":"default","name":"连接","value":"","type":"link"},{"id":"16c1311763df2b","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1311763d8c9","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":1147.7999877929688,"h":70,"angle":0,"x":66.59999084472656,"zindex":26}},"16c131741a53c":{"textBlock":[{"position":{"w":"w-20","y":"h*0.13","h":"h*0.75","x":"10"},"text":"使用了积分"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c131741a5dba","category":"default","name":"序号","value":"","type":"number"},{"id":"16c131741a550d","category":"default","name":"名称","value":"","type":"string"},{"id":"16c131741a5005","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c131741a53d4","category":"default","name":"连接","value":"","type":"link"},{"id":"16c131741a5e6c","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c131741a53c","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","title":"菱形","name":"diamond","fillStyle":{},"path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":1920.800048828125,"h":80,"angle":0,"x":56.59999084472656,"zindex":43}},"16c13144cc33ae":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"设置oms_order中收货人信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c13144cc34af","category":"default","name":"序号","value":"","type":"number"},{"id":"16c13144cc359d","category":"default","name":"名称","value":"","type":"string"},{"id":"16c13144cc30f6","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c13144cc310c","category":"default","name":"连接","value":"","type":"link"},{"id":"16c13144cc3c31","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c13144cc33ae","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":1441.7999877929688,"zindex":32,"x":66.59999084472656}},"16c13054ea7258":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"将oms_cart_item表信息转化为oms_order_item表信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c13054ea7b07","category":"default","name":"序号","value":"","type":"number"},{"id":"16c13054ea735","category":"default","name":"名称","value":"","type":"string"},{"id":"16c13054ea7546","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c13054ea7e93","category":"default","name":"连接","value":"","type":"link"},{"id":"16c13054ea7b43","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c13054ea7258","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":160,"angle":0,"h":70,"y":141.5999984741211,"zindex":2,"x":36.59999084472656}},"16c1316c979fa6":{"id":"16c1316c979fa6","to":{"id":"16c1316b7ed7b6","y":1714.800048828125,"angle":1.5707963267948966,"x":116.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1699.300048828125,"x":116.59999084472656},{"y":1699.300048828125,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c1315a7c5445","y":1683.800048828125,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":39}},"16c131700d0179":{"to":{"id":"16c1316f298908","angle":1.5707963267948968,"y":1829.800048828125,"x":116.59999084472656},"id":"16c131700d0179","linkerType":"broken","text":"是","lineStyle":{},"name":"linker","from":{"id":"16c1316b7ed7b6","angle":4.71238898038469,"y":1794.800048828125,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":1812.300048828125,"x":116.59999084472656},{"y":1812.300048828125,"x":116.59999084472656}],"group":"","props":{"zindex":41}},"16c1314f88e673":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"生成订单号"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c1314f88f3e5","category":"default","name":"序号","value":"","type":"number"},{"id":"16c1314f88fba8","category":"default","name":"名称","value":"","type":"string"},{"id":"16c1314f88f82","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c1314f88fa5b","category":"default","name":"连接","value":"","type":"link"},{"id":"16c1314f88f588","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1314f88e673","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":1546.800048828125,"h":40,"angle":0,"x":66.59999084472656,"zindex":35}},"16c130b00c8dba":{"id":"16c130b00c8dba","to":{"id":"16c13076307444","y":515.6000022888184,"angle":0,"x":258.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":515.6000022888184,"x":212.59999084472656},{"y":515.6000022888184,"x":212.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c13093966a07","y":515.6000022888184,"angle":3.141592653589794,"x":166.59999084472656},"group":"","props":{"zindex":12}},"16c1318f6f8f09":{"id":"16c1318f6f8f09","to":{"id":"16c131741a53c","y":1920.800048828125,"angle":1.5707963267948966,"x":116.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1754.800048828125,"x":206.59999084472656},{"y":1890.800048828125,"x":206.59999084472656},{"y":1890.800048828125,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c1316b7ed7b6","y":1754.800048828125,"angle":3.141592653589794,"x":176.59999084472656},"group":"","props":{"zindex":50}},"16c131013c6fb5":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"设置每个oms_order_item的实付金额"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c131013c6b75","category":"default","name":"序号","value":"","type":"number"},{"id":"16c131013c65fa","category":"default","name":"名称","value":"","type":"string"},{"id":"16c131013c6ad","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c131013c6496","category":"default","name":"连接","value":"","type":"link"},{"id":"16c131013c6085","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c131013c6fb5","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":140,"angle":0,"h":70,"y":1042.8000183105469,"zindex":24,"x":46.59999084472656}},"16c13110a4dc23":{"to":{"id":"16c131013c6fb5","angle":1.5707963267948968,"y":1042.8000183105469,"x":116.59999084472656},"id":"16c13110a4dc23","linkerType":"broken","text":"否","lineStyle":{},"name":"linker","from":{"id":"16c130cd1ced0c","angle":3.141592653589794,"y":744.5999984741211,"x":176.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":744.5999984741211,"x":206.59999084472656},{"y":1012.8000183105469,"x":206.59999084472656},{"y":1012.8000183105469,"x":116.59999084472656}],"group":"","props":{"zindex":25}},"16c1319760ea3a":{"id":"16c1319760ea3a","to":{"id":"16c1317fefd154","y":2143.800048828125,"angle":1.5707963267948968,"x":116.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1960.800048828125,"x":206.59999084472656},{"y":2113.800048828125,"x":206.59999084472656},{"y":2113.800048828125,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c131741a53c","y":1960.800048828125,"angle":3.141592653589794,"x":176.59999084472656},"group":"","props":{"zindex":51}},"16c130d17009c":{"id":"16c130d17009c","to":{"id":"16c130cd1ced0c","y":704.5999984741211,"angle":1.5707963267948966,"x":116.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":405.5999984741211,"x":196.59999084472656},{"y":674.5999984741211,"x":196.59999084472656},{"y":674.5999984741211,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c1307e4f8622","y":405.5999984741211,"angle":3.141592653589794,"x":166.59999084472656},"group":"","props":{"zindex":17}},"16c1312e958a92":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"设置oms_order中金额相关信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c13130c2e5e7","category":"default","name":"序号","value":"","type":"number"},{"id":"16c13130c2e0ce","category":"default","name":"名称","value":"","type":"string"},{"id":"16c13130c2e64a","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c13130c2ef67","category":"default","name":"连接","value":"","type":"link"},{"id":"16c13130c2e324","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1312e958a92","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":1248.7999877929688,"zindex":28,"x":66.59999084472656}},"16c1304416f59":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"获取购物车信息并计算好优惠"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c1304416fa8f","category":"default","name":"序号","value":"","type":"number"},{"id":"16c1304416f671","category":"default","name":"名称","value":"","type":"string"},{"id":"16c1304416fcc9","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c1304416fbb6","category":"default","name":"连接","value":"","type":"link"},{"id":"16c1304416f667","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1304416f59","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":35.599998474121094,"h":70,"angle":0,"x":66.59999084472656,"zindex":1}},"16c1307d75102":{"to":{"id":"16c1307e4f8622","angle":1.5707963267948968,"y":370.5999984741211,"x":116.59999084472656},"id":"16c1307d75102","linkerType":"broken","text":"是","lineStyle":{},"name":"linker","from":{"id":"16c130703e9576","angle":4.71238898038469,"y":324.5999984741211,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":347.5999984741211,"x":116.59999084472656},{"y":347.5999984741211,"x":116.59999084472656}],"group":"","props":{"zindex":8}},"16c13136abfa5b":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"设置oms_order中其他相关信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c13136abf948","category":"default","name":"序号","value":"","type":"number"},{"id":"16c13136abfff6","category":"default","name":"名称","value":"","type":"string"},{"id":"16c13136abf0f4","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c13136abff4a","category":"default","name":"连接","value":"","type":"link"},{"id":"16c13136abf104","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c13136abfa5b","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":1340.7999877929688,"h":70,"angle":0,"x":66.59999084472656,"zindex":31}},"16c130cd1ced0c":{"textBlock":[{"position":{"w":"w-20","y":"h*0.13","h":"h*0.75","x":"10"},"text":"判断是否使用了积分"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c130cd1ce55","category":"default","name":"序号","value":"","type":"number"},{"id":"16c130cd1cefad","category":"default","name":"名称","value":"","type":"string"},{"id":"16c130cd1ce16d","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c130cd1ce59","category":"default","name":"连接","value":"","type":"link"},{"id":"16c130cd1cea24","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c130cd1ced0c","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","title":"菱形","name":"diamond","fillStyle":{},"path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":704.5999984741211,"h":80,"angle":0,"x":56.59999084472656,"zindex":16}},"16c13176600d3d":{"to":{"id":"16c13177077671","angle":1.5707963267948968,"y":2034.800048828125,"x":116.59999084472656},"id":"16c13176600d3d","linkerType":"broken","text":"是","lineStyle":{},"name":"linker","from":{"id":"16c131741a53c","angle":4.71238898038469,"y":2000.800048828125,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":2017.800048828125,"x":116.59999084472656},{"y":2017.800048828125,"x":116.59999084472656}],"group":"","props":{"zindex":44}},"16c13159e90dec":{"to":{"id":"16c1315a7c5445","angle":1.5707963267948968,"y":1613.800048828125,"x":116.59999084472656},"id":"16c13159e90dec","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c1314f88e673","angle":4.71238898038469,"y":1586.800048828125,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":1600.300048828125,"x":116.59999084472656},{"y":1600.300048828125,"x":116.59999084472656}],"group":"","props":{"zindex":36}},"16c130cc7c7cf1":{"id":"16c130cc7c7cf1","to":{"id":"16c130cd1ced0c","y":704.5999984741211,"angle":1.5707963267948966,"x":116.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":684.1000022888184,"x":116.59999084472656},{"y":684.1000022888184,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c130b57f6116","y":663.6000061035156,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":15}},"16c130e213dc54":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"设置每个oms_order_item的积分优惠分解金额"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c130e213e7c4","category":"default","name":"序号","value":"","type":"number"},{"id":"16c130e213ef88","category":"default","name":"名称","value":"","type":"string"},{"id":"16c130e213ee2a","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c130e213e448","category":"default","name":"连接","value":"","type":"link"},{"id":"16c130e213e487","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c130e213dc54","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":140,"y":932.6000366210938,"h":70,"angle":0,"x":46.59999084472656,"zindex":21}},"16c130b4f3e6ed":{"to":{"id":"16c130b57f6116","angle":1.5707963267948968,"y":593.6000061035156,"x":116.59999084472656},"id":"16c130b4f3e6ed","linkerType":"broken","text":"是","lineStyle":{},"name":"linker","from":{"id":"16c13093966a07","angle":4.71238898038469,"y":550.6000022888184,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":572.100004196167,"x":116.59999084472656},{"y":572.100004196167,"x":116.59999084472656}],"group":"","props":{"zindex":13}},"16c131875296d5":{"to":{"id":"16c13187cfda75","angle":1.5707963267948968,"y":2242.800048828125,"x":116.59999084472656},"id":"16c131875296d5","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c1317fefd154","angle":4.71238898038469,"y":2213.800048828125,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":2228.300048828125,"x":116.59999084472656},{"y":2228.300048828125,"x":116.59999084472656}],"group":"","props":{"zindex":48}},"16c1316b7ed7b6":{"textBlock":[{"position":{"w":"w-20","y":"h*0.13","h":"h*0.75","x":"10"},"text":"使用了优惠券"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c1316b7ee55","category":"default","name":"序号","value":"","type":"number"},{"id":"16c1316b7ee844","category":"default","name":"名称","value":"","type":"string"},{"id":"16c1316b7ee60c","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c1316b7ee206","category":"default","name":"连接","value":"","type":"link"},{"id":"16c1316b7eeea4","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1316b7ed7b6","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","title":"菱形","name":"diamond","fillStyle":{},"path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":1714.800048828125,"h":80,"angle":0,"x":56.59999084472656,"zindex":38}},"16c13145ca823e":{"to":{"id":"16c13144cc33ae","angle":1.5707963267948966,"y":1441.7999877929688,"x":116.59999084472656},"id":"16c13145ca823e","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c13136abfa5b","angle":4.71238898038469,"y":1410.7999877929688,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":1426.2999877929688,"x":116.59999084472656},{"y":1426.2999877929688,"x":116.59999084472656}],"group":"","props":{"zindex":33}},"16c1306b54f9cd":{"to":{"id":"16c13054ea7258","angle":1.5707963267948968,"y":141.5999984741211,"x":116.59999084472656},"id":"16c1306b54f9cd","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c1304416f59","angle":4.71238898038469,"y":105.5999984741211,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":123.5999984741211,"x":116.59999084472656},{"y":123.5999984741211,"x":116.59999084472656}],"group":"","props":{"zindex":3}},"16c131004f65b5":{"to":{"id":"16c131013c6fb5","angle":1.5707963267948968,"y":1042.8000183105469,"x":116.59999084472656},"id":"16c131004f65b5","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c130e213dc54","angle":4.71238898038469,"y":1002.6000366210938,"x":116.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":1022.7000274658203,"x":116.59999084472656},{"y":1022.7000274658203,"x":116.59999084472656}],"group":"","props":{"zindex":23}},"16c1307a3b800f":{"id":"16c1307a3b800f","to":{"id":"16c13076307444","y":515.6000022888184,"angle":0,"x":258.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":284.5999984741211,"x":217.59999084472656},{"y":515.6000022888184,"x":217.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c130703e9576","y":284.5999984741211,"angle":3.141592653589794,"x":176.59999084472656},"group":"","props":{"zindex":7}},"16c130b57f6116":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"设置每个oms_order_item的优惠券优惠分解金额"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c130b57f69df","category":"default","name":"序号","value":"","type":"number"},{"id":"16c130b57f6613","category":"default","name":"名称","value":"","type":"string"},{"id":"16c130b57f6ac","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c130b57f6d7b","category":"default","name":"连接","value":"","type":"link"},{"id":"16c130b57f640a","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c130b57f6116","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":120,"angle":0,"h":70,"y":593.6000061035156,"zindex":14,"x":56.59999084472656}},"16c1317fefd154":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"删除oms_cart_item表中信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c1317fefe17f","category":"default","name":"序号","value":"","type":"number"},{"id":"16c1317fefe6bb","category":"default","name":"名称","value":"","type":"string"},{"id":"16c1317fefee26","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c1317fefee2","category":"default","name":"连接","value":"","type":"link"},{"id":"16c1317fefe527","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1317fefd154","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":2143.800048828125,"h":70,"angle":0,"x":66.59999084472656,"zindex":47}},"16c13093966a07":{"textBlock":[{"position":{"w":"w-20","y":"h*0.13","h":"h*0.75","x":"10"},"text":"判断优惠券是否可用"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c130ad00759f","category":"default","name":"序号","value":"","type":"number"},{"id":"16c130ad0073d7","category":"default","name":"名称","value":"","type":"string"},{"id":"16c130ad00749b","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c130ad007c02","category":"default","name":"连接","value":"","type":"link"},{"id":"16c130ad007a77","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c13093966a07","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","name":"diamond","fillStyle":{},"path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":480.60000228881836,"h":70,"angle":0,"x":66.59999084472656,"zindex":11}},"16c130e1ad7987":{"id":"16c130e1ad7987","to":{"id":"16c130e213dc54","y":932.6000366210938,"angle":1.5707963267948968,"x":116.59999084472656},"text":"是","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":915.1000213623047,"x":116.59999084472656},{"y":915.1000213623047,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c130d5ac6c4c","y":897.6000061035156,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":20}},"16c13074507ff":{"id":"16c13074507ff","to":{"id":"16c130703e9576","y":244.5999984741211,"angle":1.5707963267948966,"x":116.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":228.0999984741211,"x":116.59999084472656},{"y":228.0999984741211,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c13054ea7258","y":211.5999984741211,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":5}},"16c131737499b2":{"id":"16c131737499b2","to":{"id":"16c131741a53c","y":1920.800048828125,"angle":1.5707963267948966,"x":116.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1900.300048828125,"x":116.59999084472656},{"y":1900.300048828125,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c1316f298908","y":1879.800048828125,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":42}},"16c1311a5713b3":{"id":"16c1311a5713b3","to":{"id":"16c1311763d8c9","y":1147.7999877929688,"angle":1.5707963267948968,"x":116.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1130.3000030517578,"x":116.59999084472656},{"y":1130.3000030517578,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c131013c6fb5","y":1112.8000183105469,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":27}},"16c13092be725a":{"id":"16c13092be725a","to":{"id":"16c13093966a07","y":480.60000228881836,"angle":1.5707963267948968,"x":116.59999084472656},"text":"是","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":460.6000003814697,"x":116.59999084472656},{"y":460.6000003814697,"x":116.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c1307e4f8622","y":440.5999984741211,"angle":4.71238898038469,"x":116.59999084472656},"group":"","props":{"zindex":10}},"16c1315a7c5445":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"保存oms_order_item表和oms_order表信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c1315a7c6353","category":"default","name":"序号","value":"","type":"number"},{"id":"16c1315a7c6583","category":"default","name":"名称","value":"","type":"string"},{"id":"16c1315a7c6255","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c1315a7c6346","category":"default","name":"连接","value":"","type":"link"},{"id":"16c1315a7c6b11","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c1315a7c5445","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":140,"angle":0,"h":70,"y":1613.800048828125,"zindex":37,"x":46.59999084472656}}}}},"meta":{"id":"5d33f858e4b065dc42ac37f6","member":"5a210b2ee4b04f355d337104","exportTime":"2019-12-21 14:39:44","diagramInfo":{"category":"flow","title":"下单流程","created":"2019-07-21 13:30:00","creator":"5a210b2ee4b04f355d337104","modified":"2019-07-21 14:01:04"},"type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git "a/document/pos/\347\224\237\346\210\220\347\241\256\350\256\244\345\215\225\346\265\201\347\250\213.pos" "b/document/pos/\347\224\237\346\210\220\347\241\256\350\256\244\345\215\225\346\265\201\347\250\213.pos" deleted file mode 100644 index 5f8a5ffa..00000000 --- "a/document/pos/\347\224\237\346\210\220\347\241\256\350\256\244\345\215\225\346\265\201\347\250\213.pos" +++ /dev/null @@ -1 +0,0 @@ -{"diagram":{"image":{"height":1311,"pngdata":"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x0Oj0cDa2tqg/cn14DUaLXbvPohTp/5FxYoVDF7LyMiEq6sLqlSpbNDu6OgIADh//gLWr9+KtLT8s2NBJZCCg4NZAomIyp2yMw2TiOg5yy2xBMALQL4lluLj78PV1cVo3+zsbNjYFLz60JNOnfoXHh71DQLm/fsJqFzZqdBb+AkJidDp9Ab7sQQSEb2IGDqJ6IXWuHFja2tr6zGCIHwNwNHKyhIffdQXQ4d+aHTV0twyMjKxZs1GBAZug0ajBXJKIM0UBGFJUFDQ812GiYiolDF0EtFLwcfHx1Wr1c4SRdEXgFC5slOxSyyZGksgEdHLgKGTiF4q3t7erwiCsBhAawBo1qxRiUosPW8FlUBSqVQsgURELxSGTiJ6GQm5JZYAVBMEodgllp4XlkAiopcNQycRvbTatGnjkJGRMV0QhIkArO3sFEWWWHpWLIFERC8rhk4ieukplUp3AAsA9ASAOnVqFlhi6VkUVAJJpVKxBBIRvfAYOomIHilOiaWnwRJIREQMnUREBp5niSWWQCIieoyhk4goH89SYoklkIiIjDF0EhEVoqQlllgCiYgofwydRERFK7LEEksgEREVjqGTiKiY8iux5Os7AACwdu0mlkAiIioEQycRUQk9WWIpD5ZAIiIqAEMnEdFTelRiadGjpxNYAomIiIiITEKpVIpKpZJjNomIiiAzdweIiIiI6MXH0ElEREREJsfQSUREREQmx9BJRERERCbH0ElEREREJsfQSUREREQmx9BJRERERCbH0ElEREREJsfQSUREREQmx9BJRERERCbH0ElEREREJsfQSUREREQmx9BJRERERCbH0ElEREREJsfQSUREREQmx9BJRERERCbH0ElEREREJsfQSUREREQmx9BJRERERCbH0ElEREREJsfQSUREREQmx9BJRERERCbH0ElEREREJsfQSUREREQmx9BJRERERCbH0ElEREREJsfQSUREREQmZ2nuDhDR0xFFUXyW/QVBEJ5XX4iIiIrCK51EREUQC1HUNubsd1lU2HdZFHP3nYieDUMnEREREZkcQyfRCyw7OxszZsxAu3bt0LFjR6xYscLcXSIiopcUQyfRC+ynn35CZmYmDh48iMDAQBw6dAg7d+40d7deaDdu3EDbtm3N3Y1yS61W44cffsCbb76Jtm3bYuzYsbh37565u0VEzwFDJ1E51rZt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WUe9+uo/lZiYpL/9rWBUtehTG0q7n7hatQDddttNysk5qe3bd2ry5PHasiVaI0cOVo0aQcVGRx9//B+qXr2ali5dLpvNR/fee4d17rff/lC7dq2toFxox47deuWVuU4hMyHhYLFZA7s9X/369Sn9G+nBuNeY0AnAS1TG7QKl89/670Jrq0rCwsJKbC9tFx9PcL4z/qmpaUpOPlrq8ysbNqyvG2+83qnNx8dHNWoEa+zYyWrRouDewt27462/f3v27NX777/h9AiyFSu+01dfrZa/v5+++Watdu2K06RJ/7LOHz+eqZo1QzR37svWM24Lp9Cjo//Qc8+Nl8Nhav/+gnuw58x5XzNnTikWOjt2bKdBg+7Vp59+VeLXk5mZpZtuut5rA6fEvcYSoROAl/L27QILne/WfxdaGzzb+S4OW7p0pQ4cSNRXX63WihXfKTg40AqQe/fuV8uWzXX6dK5q1AjSdddd5XRtaVPapmk6BU5JuuOOm61djKKitut//9uqRx992KlPTEysjhxJUePGDay29PQM/f77Dk2Y8ILy8uxKTU3XV1+9Lx8fn1J3N7ruum665prLrf9mBw8e6/RLommaJW7s4C288V7j8kboBOB1StsusFat0BK3Czx48LD27TtobRcYElJDl13WSQMG9LP6nbld4N133+b0PuW9XWCh893670JqqwpKeqB2eHj4i5JekPTPqKioFyu6pvNxPovDDh8+oqZNG6lBg3q6777+1mO/CqfKz9zo4EyXXNLMerZt0b7Dh0+Q3W63Riy3b4/RzJlzrFHJXbvi1LZtKw0fPkHp6RmqWTPE+jvapk1LPfXUaOszvv76G40bN0J9+/bSli3R2rZth3x9fUsc0c3KytbTT78ku93u1L537wGn4H3iRJZSUtL1+efzz/u/M0/gjfcalzdCJwCvU5m2Czyfrf8upDZUPnv2xOv222/SihVrnNrLen/w7t1xVpgrHB09fTpXWVnZOn061wqdnTu31+LFb0uSfv55s6Kituuxx4ZJKvi7uHDhEt1zTz81auR8O0NmZpYOHkzU8eMZuv76q7Vhwy/WaGlJv0gFBwdpxoznVaNGkAzDkGmamjjxX+rbt5eefHKUAgIClJx8VFu3/qbbb/fe6XVvvNe4vBE6AXid11//V7G29u3b6MMPZzuFSj8/Xy1ZMrfUaStfX1/173+L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796932j27EXntVrRp59uUlWV56zbN278MmBmPgDUV7zTCQAh7N37jVJT31SfPgmy2yP95dXVpiZNekZ//eufzjpLfMWK1WrePFpOp+usy056PF41aBCuqKiGWrXqbf3iFz/Xa6/9WZs2bZPbXaH8fKfat69J1xQV1VAJCd1CtgMA9QVBJwCE8NlnmzRx4piAgFOqSbzerFnTswacaWnbZRiGnn12iubMeUnTpk0MOfHotdf+rO3bd6q62pTP51Na2nZFRtq0YsVCbdq0VVZrhHr37lkr5wYAdYGgEwC+p7ra1L59BzRp0vigbadXNXK5CpSbm6/4+Jv825zOAq1cuUYvvvifCgsL02OPPaJf/WqWfvObXyourpO/XmFhsbKzj2nMmBE6ebJMgwffq9279ykqqqEefjhJhmHI4YhScvIqeTxepaQsUHg4t2sA9Rt3MQD4nrS0bSovd6uyskpTp86Uz+eTxfLdK/DZ2cc0Y8YctW4do65dY2UYhgoKCrVkyZ80e/ZzatQoSlJNkvpJk8brqadmqUePrhow4B717Bmv6OgmmjNnhqZOnanycrf+8pf35XBEafHiFxQd3UTLl7+oqiqPIiIaKClpOgEngGsCdzIA+J61az9WZWWlbDarkpPnB20fPfrJgBWPMjP3KivrgAYMuEczZgSuYJSTk6eHHrpf2dnH9PLLKf72Nm78Ul27xuqOO27RRx99qqFDB8kwDBlGTXA7duxkrV69tBbPEgCuLIJOADjDF19s0QMP3KeVK9dIqllTfffufbr55tDvVxYXl+i661qoW7c4VVebSkjoJqvVqnHjpuj11xf761VVeWSa1bJarfJ6vXI4ovT442O1fPnrKisr1yefbFTbtv+msDBDpmmqYUM7TzgBXFO4owHAKRUVlXI6CzR06CB/0BkZadPOnbvlchVq4MB7gvZp3NghSZo583904oTTX37o0BElJU2XJHm9PpWVlfuD0PDwcPXsGa/16/+p/v3vVKdOHZSSslqbN29VdbUpt9vtH6IHgGsFQScAnFJd7dPQoYOCyocMGajZsxeFDDpPe/bZKTp6NEddu8ZKksaNm6Lk5AUqKSnVpk1bNGjQvf66ZWXlcjpdeuONd/yz43Nzj2vt2lV68833lJ/vUps2rSTpnDk8AaA+ITk8AJxit4dOg9SyZXPNn//7c+7rcERp27adeuONdwLK33//7yotLQtI8B4ZaVO7dm0VHd1UyckLlJy8QK1aXXcq1dJkpaVtV/fuXZSevksLFz5/6ScGAFcBgk4ACOH7qwlFRET84D6jRj2kdes2+L+73RXyen0aMeJBGYahQ4eyJUlhYTW33oKCQiUlTVdS0nR5vT7/cY4ezdF9992tyEibFixYpoqKyst1WgBQZxheB4AQPJ7AYe3ycre2bs1QaWl5wASf4uISTZ06UxERDWQYhiwWi5KSpuv48ROaOPHXslqt+vLL7TJNU4cPH1FKykK1b3+9JOnWW3tr8uQJkqT09K+0efM25eXl6+mnn5QkdenSWYmJPfT555s1YMDZh/YBoD4g6ASAEOLj4wK+2+2RuvXW3lq06I8aPXq4v7xxY4dSU1+SxWK54GOcDjglqUuXWPl8PvXte3NAnWHDBvufggJAfWbUdQcA4EwJCQmmJKWnb/ihqrgCEhN/KknKyMjg/wWAS8I7nQAAAKh1BJ0AAACodQSdAAAAqHUEnQAAAKh1BJ0AAACodQSdAAAAqHUEnQAAAKh1BJ0AAACodQSdAK42TkkqKyuv63786JWWlp3+6KzLfgC4NhB0Arja7JGk/fsP1nU/fvTO+B18XZf9AHBtuPDFggGgFrVu3Tpc0oN79uxXx47t1KhRlCIiIuq6Wz8qpaVl2r17n+bOXaKCgiKZpjk7Ly9vR133C0D9xlq6AK42YQkJCR9Iur+uOwJJ0ocZGRlDJJl13REA9RtPOgFcbczc3Ny3YmJijhqG0VhSlCR7XXfqR8YpaZtpmrN37NjxnAg4AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcA36f8HIzsyYjG1zAAAAAElFTkSuQmCC","width":669,"y":-30,"x":-30},"elements":{"page":{"gridSize":15,"showGrid":true,"orientation":"portrait","height":1360,"backgroundColor":"transparent","width":1050,"padding":20},"theme":{"linker":{"lineStyle":{"lineColor":"50,50,50","lineWidth":2},"fontStyle":{"bold":false,"color":"50,50,50","italic":false,"fontFamily":"Arial","size":13}},"name":"colorful_yellow","shape":{"lineStyle":{"lineColor":"50,50,50","lineWidth":2},"fillStyle":{"color":"255,255,237","type":"solid"},"fontStyle":{"bold":false,"color":"50,50,50","italic":false,"fontFamily":"Arial","size":13}}},"elements":{"16c0fa734975f6":{"id":"16c0fa734975f6","to":{"id":"16c0fa5f734a33","y":845.5999755859375,"angle":4.71238898038469,"x":481.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":661.5999984741211,"x":569.5999908447266},{"y":875.5999755859375,"x":569.5999908447266},{"y":875.5999755859375,"x":481.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0fa4bbcde7a","y":661.5999984741211,"angle":3.1415926535897936,"x":539.5999908447266},"group":"","props":{"zindex":27}},"16c0fa720c843c":{"id":"16c0fa720c843c","to":{"id":"16c0fa5f734a33","y":845.5999755859375,"angle":4.71238898038469,"x":481.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":661.5999984741211,"x":403.09999084472656},{"y":875.5999755859375,"x":403.09999084472656},{"y":875.5999755859375,"x":481.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0fa1d926afd","y":661.5999984741211,"angle":3.1415926535897936,"x":374.59999084472656},"group":"","props":{"zindex":26}},"16c0fa11b863b2":{"id":"16c0fa11b863b2","to":{"id":"16c0fa0adbe54d","y":621.5999984741211,"angle":1.5707963267948966,"x":117.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":590.6000003814697,"x":117.59999084472656},{"y":590.6000003814697,"x":117.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f9e497b275","y":559.6000022888184,"angle":4.71238898038469,"x":117.59999084472656},"group":"","props":{"zindex":15}},"16c0f9c13c31e8":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"获取该会员所有优惠券信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f9c13c3741","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f9c13c3309","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f9c13c3d11","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f9c13c39ae","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f9c13c341e","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f9c13c31e8","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":254.5999984741211,"zindex":4,"x":249.59999084472656}},"16c0fa6985f24a":{"to":{"id":"16c0fa59b40e03","angle":1.5707963267948968,"y":786.6000061035156,"x":299.59999084472656},"id":"16c0fa6985f24a","linkerType":"broken","text":"是","lineStyle":{},"name":"linker","from":{"id":"16c0fa4bbcde7a","angle":4.71238898038469,"y":701.5999984741211,"x":464.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":744.1000022888184,"x":464.59999084472656},{"y":744.1000022888184,"x":299.59999084472656}],"group":"","props":{"zindex":24}},"16c0f9e497b275":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"全场通用"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f9e497bbf4","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f9e497bd13","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f9e497b16d","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f9e497b2de","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f9e497b56e","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f9e497b275","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":509.60000228881836,"h":50,"angle":0,"x":67.59999084472656,"zindex":8}},"16c0f9cc7543d1":{"textBlock":[{"position":{"w":"w-20","h":"h*0.75","y":"h*0.13","x":"10"},"text":"根据use_type判断每个优惠券是否可用"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f9e06de1ae","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f9e06dec4","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f9e06de9ea","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f9e06dec49","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f9e06de21d","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f9cc7543d1","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","name":"diamond","path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":120,"angle":0,"h":70,"y":365.5999984741211,"zindex":6,"x":239.59999084472656}},"16c0faa6477101":{"id":"16c0faa6477101","to":{"id":"16c0fa9ef3d8d2","y":1141.6000366210938,"angle":1.5707963267948968,"x":305.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1125.1000366210938,"x":305.59999084472656},{"y":1125.1000366210938,"x":305.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0fa93dc2092","y":1108.6000366210938,"angle":4.71238898038469,"x":305.59999084472656},"group":"","props":{"zindex":33}},"16c0fa5f734a33":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"得到用户不可用优惠券列表"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0fa5fccea84","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0fa5fcce0dd","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0fa5fccebe8","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0fa5fcce275","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0fa5fcce0d","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0fa5f734a33","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":775.5999755859375,"h":70,"angle":0,"x":431.59999084472656,"zindex":21}},"16c0f9ee7f203e":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"指定商品"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f9ee7f2c7f","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f9ee7f2e3f","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f9ee7f294b","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f9ee7f2f3a","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f9ee7f2545","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f9ee7f203e","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":512.6000022888184,"h":50,"angle":0,"x":414.59999084472656,"zindex":10}},"16c0f9e33df401":{"to":{"id":"16c0f9cc7543d1","angle":1.5707963267948966,"y":365.5999984741211,"x":299.59999084472656},"id":"16c0f9e33df401","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0f9c13c31e8","angle":4.71238898038469,"y":324.5999984741211,"x":299.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":345.0999984741211,"x":299.59999084472656},{"y":345.0999984741211,"x":299.59999084472656}],"group":"","props":{"zindex":7}},"16c0fa4bbcde7a":{"textBlock":[{"position":{"w":"w-20","h":"h*0.75","y":"h*0.13","x":"10"},"text":"判断指定商品总金额是否满足使用起点金额"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0fa4c0e5994","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0fa4c0e5979","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0fa4c0e5168","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0fa4c0e56bb","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0fa4c0e5d61","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0fa4bbcde7a","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"title":"菱形","category":"basic","name":"diamond","path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":150,"angle":0,"h":80,"y":621.5999984741211,"zindex":18,"x":389.59999084472656}},"16c0f9ab14f21":{"to":{"id":"16c0f99a09721f","angle":1.5707963267948968,"y":157.5999984741211,"x":299.59999084472656},"id":"16c0f9ab14f21","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0f9915c8682","angle":4.71238898038469,"y":105.5999984741211,"x":299.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":131.5999984741211,"x":299.59999084472656},{"y":131.5999984741211,"x":299.59999084472656}],"group":"","props":{"zindex":3}},"16c0fa837b46f2":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"获取用户积分"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0fa837b4039","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0fa837b4c19","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0fa837b48f8","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0fa837b4b85","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0fa837b44db","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0fa837b46f2","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":928.6000061035156,"h":70,"angle":0,"x":255.59999084472656,"zindex":28}},"16c0f9ec1ddc84":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"指定分类"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f9ec1dd8ac","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f9ec1ddf07","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f9ec1dd497","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f9ec1dd85d","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f9ec1dd6cb","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f9ec1ddc84","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":512.6000022888184,"h":50,"angle":0,"x":249.59999084472656,"zindex":9}},"16c0fa9cdf8fc8":{"to":{"id":"16c0fa93dc2092","angle":1.5707963267948968,"y":1038.6000366210938,"x":305.59999084472656},"id":"16c0fa9cdf8fc8","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0fa837b46f2","angle":4.71238898038469,"y":998.6000061035156,"x":305.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":1018.6000213623047,"x":305.59999084472656},{"y":1018.6000213623047,"x":305.59999084472656}],"group":"","props":{"zindex":31}},"16c0fa0adbe54d":{"textBlock":[{"position":{"w":"w-20","h":"h*0.75","y":"h*0.13","x":"10"},"text":"判断所有商品总金额是否满足使用起点金额"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0fa0adbeb7d","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0fa0adbea5b","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0fa0adbe3d6","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0fa0adbe4a8","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0fa0adbe324","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0fa0adbe54d","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"title":"菱形","category":"basic","name":"diamond","path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":160,"angle":0,"h":80,"y":621.5999984741211,"zindex":14,"x":37.59999084472656}},"16c0fa9ef3d8d2":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"计算总金额,活动优惠,应付金额"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0fa9ef3da1","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0fa9ef3df0d","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0fa9ef3dfba","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0fa9ef3dbd1","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0fa9ef3d5a7","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0fa9ef3d8d2","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":1141.6000366210938,"h":70,"angle":0,"x":255.59999084472656,"zindex":32}},"16c0fa62f96bdf":{"to":{"id":"16c0fa59b40e03","angle":1.5707963267948968,"y":786.6000061035156,"x":299.59999084472656},"id":"16c0fa62f96bdf","linkerType":"broken","text":"是","lineStyle":{},"name":"linker","from":{"id":"16c0fa0adbe54d","angle":4.71238898038469,"y":701.5999984741211,"x":117.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":744.1000022888184,"x":117.59999084472656},{"y":744.1000022888184,"x":299.59999084472656}],"group":"","props":{"zindex":22}},"16c0fa59b40e03":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"得到用户可用优惠券列表"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0fa59b41167","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0fa59b4182d","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0fa59b4159a","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0fa59b41c9d","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0fa59b412c4","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0fa59b40e03","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":786.6000061035156,"zindex":20,"x":249.59999084472656}},"16c0f99a09721f":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"从ums_member_receive_address表中获取会员收货地址列表"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f99a0973c","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f99a097616","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f99a097631","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f99a0974ec","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f99a097f96","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f99a09721f","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":244,"angle":0,"h":55,"y":157.5999984741211,"zindex":2,"x":177.59999084472656}},"16c0f9915c8682":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"获取购物车信息并计算好优惠"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f9915c97dd","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f9915c9fdc","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f9915c96b6","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f9915c923c","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f9915c96c5","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f9915c8682","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":35.599998474121094,"h":70,"angle":0,"x":249.59999084472656,"zindex":1}},"16c0fa87cfe33c":{"id":"16c0fa87cfe33c","to":{"id":"16c0fa837b46f2","y":928.6000061035156,"angle":1.5707963267948966,"x":297.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":892.6000061035156,"x":299.59999084472656},{"y":892.6000061035156,"x":297.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0fa59b40e03","y":856.6000061035156,"angle":4.71238898038469,"x":299.59999084472656},"group":"","props":{"zindex":29}},"16c0f9f1befc58":{"id":"16c0f9f1befc58","to":{"id":"16c0f9e497b275","y":509.60000228881836,"angle":1.5707963267948968,"x":117.59999084472656},"text":"=0","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":472.6000003814697,"x":299.59999084472656},{"y":472.6000003814697,"x":117.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f9cc7543d1","y":435.5999984741211,"angle":4.71238898038469,"x":299.59999084472656},"group":"","props":{"zindex":11}},"16c0fa66f9630d":{"to":{"id":"16c0fa59b40e03","angle":1.5707963267948968,"y":786.6000061035156,"x":299.59999084472656},"id":"16c0fa66f9630d","linkerType":"broken","text":"是","lineStyle":{},"name":"linker","from":{"id":"16c0fa1d926afd","angle":4.71238898038469,"y":701.5999984741211,"x":299.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":744.1000022888184,"x":299.59999084472656},{"y":744.1000022888184,"x":299.59999084472656}],"group":"","props":{"zindex":23}},"16c0fa215b7e0c":{"id":"16c0fa215b7e0c","to":{"id":"16c0fa1d926afd","y":621.5999984741211,"angle":1.5707963267948966,"x":299.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":592.1000003814697,"x":299.59999084472656},{"y":592.1000003814697,"x":299.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f9ec1ddc84","y":562.6000022888184,"angle":4.71238898038469,"x":299.59999084472656},"group":"","props":{"zindex":17}},"16c0fa1d926afd":{"textBlock":[{"position":{"w":"w-20","h":"h*0.75","y":"h*0.13","x":"10"},"text":"判断指定分类商品总金额是否满足使用起点金额"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0fa1d927c05","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0fa1d92758b","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0fa1d927116","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0fa1d9274d7","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0fa1d9277d5","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0fa1d926afd","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"title":"菱形","category":"basic","name":"diamond","path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":150,"angle":0,"h":80,"y":621.5999984741211,"zindex":16,"x":224.59999084472656}},"16c0fa4e28fd83":{"id":"16c0fa4e28fd83","to":{"id":"16c0fa4bbcde7a","y":621.5999984741211,"angle":1.5707963267948966,"x":464.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":592.1000003814697,"x":464.59999084472656},{"y":592.1000003814697,"x":464.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f9ee7f203e","y":562.6000022888184,"angle":4.71238898038469,"x":464.59999084472656},"group":"","props":{"zindex":19}},"16c0f9f311f5b7":{"id":"16c0f9f311f5b7","to":{"id":"16c0f9ec1ddc84","y":512.6000022888184,"angle":1.5707963267948968,"x":299.59999084472656},"text":"=1","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":474.1000003814697,"x":299.59999084472656},{"y":474.1000003814697,"x":299.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f9cc7543d1","y":435.5999984741211,"angle":4.71238898038469,"x":299.59999084472656},"group":"","props":{"zindex":12}},"16c0f9cb4eef47":{"to":{"id":"16c0f9c13c31e8","angle":1.5707963267948968,"y":254.5999984741211,"x":299.59999084472656},"id":"16c0f9cb4eef47","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0f99a09721f","angle":4.71238898038469,"y":212.5999984741211,"x":299.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":233.5999984741211,"x":299.59999084472656},{"y":233.5999984741211,"x":299.59999084472656}],"group":"","props":{"zindex":5}},"16c0fa93dc2092":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"获取积分使用规则"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0fa93dc32d","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0fa93dc378","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0fa93dc3839","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0fa93dc3271","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0fa93dc3c4d","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0fa93dc2092","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":1038.6000366210938,"zindex":30,"x":255.59999084472656}},"16c0f9f3b8e634":{"id":"16c0f9f3b8e634","to":{"id":"16c0f9ee7f203e","y":512.6000022888184,"angle":1.5707963267948968,"x":464.59999084472656},"text":"=2","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":474.1000003814697,"x":299.59999084472656},{"y":474.1000003814697,"x":464.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f9cc7543d1","y":435.5999984741211,"angle":4.71238898038469,"x":299.59999084472656},"group":"","props":{"zindex":13}},"16c0fa706e9412":{"id":"16c0fa706e9412","to":{"id":"16c0fa5f734a33","y":845.5999755859375,"angle":4.71238898038469,"x":481.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":661.5999984741211,"x":227.59999084472656},{"y":875.5999755859375,"x":227.59999084472656},{"y":875.5999755859375,"x":481.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0fa0adbe54d","y":661.5999984741211,"angle":3.1415926535897936,"x":197.59999084472656},"group":"","props":{"zindex":25}}}}},"meta":{"id":"5d3318c1e4b02015bd8448eb","member":"5a210b2ee4b04f355d337104","exportTime":"2019-12-21 14:39:37","diagramInfo":{"category":"flow","title":"生成确认单流程","created":"2019-07-20 21:36:01","creator":"5a210b2ee4b04f355d337104","modified":"2019-07-21 18:53:12"},"type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git "a/document/pos/\350\264\255\347\211\251\345\212\237\350\203\275\346\265\201\347\250\213\345\233\276.pos" "b/document/pos/\350\264\255\347\211\251\345\212\237\350\203\275\346\265\201\347\250\213\345\233\276.pos" deleted file mode 100644 index 61ea06ef..00000000 --- "a/document/pos/\350\264\255\347\211\251\345\212\237\350\203\275\346\265\201\347\250\213\345\233\276.pos" +++ /dev/null @@ -1 +0,0 @@ -{"diagram":{"image":{"height":414,"pngdata":"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vwGk6S1KEwThcGGVh94sBklERERERM/h5+eXBuCvnPeCIBx6soxKIAZJRERERET5IIqi1L0un5PMUjHFIImIiIiIKB/MzMwO5ry2srI6mNe6REREREREpYJKpdqvUqn2FXY56M0yKewCEBEREREVI7sEQRALuxD0ZgmFXYBSROHh4eEpimJ/APUBVCzsAtEruQ8gWBCEjX5+fusAaAu7QMUQz4mShefE87HOlyys83Ks3yVLqa/fDJIKhkKlUu0F0KmwC0JvxH5/f//PUAovIK+A50TJxnPCEOt8yVba6zzrd8lWKus3g6QC4OHhMVgUxdUuLrUwadIouLo6w9raqrCLRa8gNTUN4eFR8PZeisjI6xBFcXBAQMDawi5XccFzouThOZE31vmSh3X+Kdbvkof1m9ntCsSTpmdMmjQK7u6NeOEoAaytreDu3ggTJ44EAAiC0L+Qi1Ss8JwoeXhO5I11vuRhnX+K9bvkYf1mkFRQ6gOAq6tzYZeDXjO9f9MGhVmOYojnRAnFcyJXrPMlFOs8ANbvEqs0128GSQWjIgA+WSmBbGysc15ygOqL4TlRQvGcyBXrfAnFOg+A9bvEKs31m0ESERERERGRHgZJREREREREehgkERERERER6WGQREREREREpIdBEhERERERkR4GSURERERERHoYJBEREREREelhkERERERERKSHQRIREREREZEeBklERERERER6GCQRUYlx4MARJCc/znMdb++lSEpKNvpZfPxdo8vDw6MNlgUEBEIUxRcvJIATJ85Co9EYLI+JuYN167bKls2cuRAZGZlG9xMSEpHncXx9/ZCdrTZYfu1aKL7+eixu3owx+vnjxyl57peIiKikMynsAhARvaioqBsICYlAp07tAABbtuxG27bvY//+o+jQoU2e2165EoQyZezwxx97cOjQP7CwMJM+Cw2NxMqV81C/vqtsG2/vJTAxUcqWhYREwsdnPurVqyNbvn79Npw6dQ6mpk8vr/Hxd1Gpkj0UCgEAEBeXgAcPEtGjR2fZtidOnEHNmtVly2Jj42BhYQ4AePQoCba2NlAqdWWZN2+ZrFwREdGoU6e27O9ZvXoB3NxcAACbN+9CSkoqTp06hzVrFsLKygqjR3+PjIwMaRtRFHHrVix27FgDOzvbvL5KIiKiEotBEhEVO87ONTFjxgK0adMSVlZWCAwM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","width":841,"y":-30,"x":-30},"elements":{"page":{"gridSize":15,"showGrid":true,"orientation":"portrait","height":1000,"backgroundColor":"transparent","width":1050,"padding":20},"theme":{"linker":{"lineStyle":{"lineColor":"50,50,50","lineWidth":2},"fontStyle":{"bold":false,"color":"50,50,50","italic":false,"fontFamily":"Arial","size":13}},"name":"colorful_yellow","shape":{"lineStyle":{"lineColor":"50,50,50","lineWidth":2},"fillStyle":{"color":"255,255,237","type":"solid"},"fontStyle":{"bold":false,"color":"50,50,50","italic":false,"fontFamily":"Arial","size":13}}},"elements":{"16c0d372c033ee":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"选择购物车中商品去结算"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d372c03726","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d372c035be","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d372c03c3c","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d372c03323","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d372c03c6","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d372c033ee","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":120,"angle":0,"h":60,"y":54.599998474121094,"zindex":4,"x":435.2666575113932}},"16c0d3983516c6":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"选择收货地址"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d3983527c9","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d3983520df","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d398352b6c","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d398352159","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d3983525a","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d3983516c6","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":120,"angle":0,"h":60,"y":146.5999984741211,"zindex":10,"x":621.5999908447266}},"16c0d3c09cc4d4":{"id":"16c0d3c09cc4d4","to":{"id":"16c0d3a53662ca","y":176.59999847412107,"angle":3.141592653589793,"x":172.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":176.5999984741211,"x":210.5166575113932},{"y":176.59999847412107,"x":210.5166575113932}],"locked":false,"dataAttributes":[],"from":{"id":"16c0d39d450c39","y":176.5999984741211,"angle":0,"x":248.93332417805988},"group":"","props":{"zindex":20}},"16c0d36397e3e5":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"会员选择商品规格"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d36397e4d9","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d36397ef25","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d36397e9f8","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d36397eb46","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d36397e2fc","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d36397e3e5","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":54.599998474121094,"h":60,"angle":0,"x":52.09999084472656,"zindex":1}},"16c0d3bb72b1dc":{"id":"16c0d3bb72b1dc","to":{"id":"16c0d387d43151","y":84.5999984741211,"angle":0,"x":621.5999908447266},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":84.5999984741211,"x":588.4333241780598},{"y":84.5999984741211,"x":588.4333241780598}],"locked":false,"dataAttributes":[],"from":{"id":"16c0d372c033ee","y":84.5999984741211,"angle":3.141592653589793,"x":555.2666575113932},"group":"","props":{"zindex":16}},"16c0d3bf33349f":{"id":"16c0d3bf33349f","to":{"id":"16c0d3983516c6","y":146.5999984741211,"angle":1.5707963267948968,"x":681.5999908447266},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":130.5999984741211,"x":681.5999908447266},{"y":130.5999984741211,"x":681.5999908447266}],"locked":false,"dataAttributes":[],"from":{"id":"16c0d387d43151","y":114.5999984741211,"angle":4.71238898038469,"x":681.5999908447266},"group":"","props":{"zindex":17}},"16c0d3a7233a2e":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"支付订单"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d3a72338c5","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d3a723328f","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d3a72335c8","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d3a7233c65","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d3a7233752","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d3a7233a2e","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":254.5999984741211,"h":60,"angle":0,"x":52.09999084472656,"zindex":14}},"16c0d3bf9bdd59":{"to":{"id":"16c0d39b5625ef","angle":3.141592653589793,"y":176.5999984741211,"x":557.5999908447266},"id":"16c0d3bf9bdd59","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0d3983516c6","angle":0,"y":176.5999984741211,"x":621.5999908447266},"dataAttributes":[],"locked":false,"points":[{"y":176.5999984741211,"x":589.5999908447266},{"y":176.5999984741211,"x":589.5999908447266}],"group":"","props":{"zindex":18}},"16c0d3a900429f":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"查看订单"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d3a9004f13","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d3a90045a8","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d3a9004bcb","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d3a90048ba","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d3a900491","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d3a900429f","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":120,"angle":0,"h":60,"y":254.5999984741211,"zindex":15,"x":252.59999084472656}},"16c0d3c193cf4d":{"to":{"id":"16c0d3a900429f","angle":0,"y":284.5999984741211,"x":252.59999084472656},"id":"16c0d3c193cf4d","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0d3a7233a2e","angle":3.141592653589793,"y":284.5999984741211,"x":172.09999084472656},"dataAttributes":[],"locked":false,"points":[{"y":284.5999984741211,"x":212.34999084472656},{"y":284.5999984741211,"x":212.34999084472656}],"group":"","props":{"zindex":22}},"16c0d39b5625ef":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"选择优惠券"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d39b562da1","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d39b562897","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d39b56289d","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d39b56298a","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d39b562f88","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d39b5625ef","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":146.5999984741211,"h":60,"angle":0,"x":437.59999084472656,"zindex":11}},"16c0d3c1153c2d":{"id":"16c0d3c1153c2d","to":{"id":"16c0d3a7233a2e","y":254.5999984741211,"angle":1.5707963267948968,"x":112.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":230.5999984741211,"x":112.09999084472656},{"y":230.5999984741211,"x":112.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0d3a53662ca","y":206.5999984741211,"angle":4.71238898038469,"x":112.09999084472656},"group":"","props":{"zindex":21}},"16c0d3c0253ff6":{"id":"16c0d3c0253ff6","to":{"id":"16c0d39d450c39","y":176.5999984741211,"angle":3.141592653589793,"x":368.9333241780599},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":176.5999984741211,"x":403.2666575113932},{"y":176.5999984741211,"x":403.2666575113932}],"locked":false,"dataAttributes":[],"from":{"id":"16c0d39b5625ef","y":176.5999984741211,"angle":0,"x":437.59999084472656},"group":"","props":{"zindex":19}},"16c0d38558af2e":{"to":{"id":"16c0d372c033ee","angle":0,"y":84.5999984741211,"x":435.2666575113932},"id":"16c0d38558af2e","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0d36e4b72e9","angle":3.141592653589793,"y":84.5999984741211,"x":368.9333241780599},"dataAttributes":[],"locked":false,"points":[{"y":84.5999984741211,"x":402.09999084472656},{"y":84.5999984741211,"x":402.09999084472656}],"group":"","props":{"zindex":5}},"16c0d3a53662ca":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"提交订单"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d3a5366da5","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d3a5366df7","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d3a5366b7c","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d3a53660db","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d3a5366a67","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d3a53662ca","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":146.5999984741211,"h":60,"angle":0,"x":52.09999084472656,"zindex":13}},"16c0d387d43151":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"查看确认单"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d387d436b4","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d387d43c0f","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d387d43623","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d387d4306b","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d387d4361a","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d387d43151","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":120,"y":54.599998474121094,"h":60,"angle":0,"x":621.5999908447266,"zindex":6}},"16c0d36e4b72e9":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"加入购物车"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d36e4b7b27","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d36e4b73fa","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d36e4b73fa","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d36e4b73f9","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d36e4b796e","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d36e4b72e9","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":120,"angle":0,"h":60,"y":54.599998474121094,"zindex":2,"x":248.93332417805988}},"16c0d39d450c39":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"选择是否使用积分抵扣"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0d39d450ca7","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0d39d45043f","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0d39d450678","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0d39d4504b9","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0d39d450c4","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0d39d450c39","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":120,"angle":0,"h":60,"y":146.5999984741211,"zindex":12,"x":248.93332417805988}},"16c0d371d7aba7":{"id":"16c0d371d7aba7","to":{"id":"16c0d36e4b72e9","y":84.5999984741211,"angle":0,"x":248.93332417805988},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":84.5999984741211,"x":210.5166575113932},{"y":84.5999984741211,"x":210.5166575113932}],"locked":false,"dataAttributes":[],"from":{"id":"16c0d36397e3e5","y":84.5999984741211,"angle":3.141592653589793,"x":172.09999084472656},"group":"","props":{"zindex":3}}}}},"meta":{"id":"5d327c66e4b02015bd83e45d","member":"5a210b2ee4b04f355d337104","exportTime":"2019-12-21 14:39:26","diagramInfo":{"category":"flow","title":"购物功能流程图","created":"2019-07-20 10:28:54","creator":"5a210b2ee4b04f355d337104","modified":"2019-07-20 10:42:38"},"type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git "a/document/pos/\350\264\255\347\211\251\350\275\246\344\274\230\346\203\240\350\256\241\347\256\227\346\265\201\347\250\213.pos" "b/document/pos/\350\264\255\347\211\251\350\275\246\344\274\230\346\203\240\350\256\241\347\256\227\346\265\201\347\250\213.pos" deleted file mode 100644 index 5ecc9fb5..00000000 --- "a/document/pos/\350\264\255\347\211\251\350\275\246\344\274\230\346\203\240\350\256\241\347\256\227\346\265\201\347\250\213.pos" +++ /dev/null @@ -1 +0,0 @@ -{"diagram":{"image":{"height":1254,"pngdata":"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N/e4brmluzZu/F69e99a6TkqW/q5tNTpsz1lykw1b95MkuR0lkqSateupdq1ayk397j++9/vNGnSOH3wweqLfYsAAOAcCDgALKNNm5a66qp2kqQaNcI0evRE775ataJUv35dde7cocJxLtfPiwU0btxQU6ZM8Nn/5JO+K6uNHv0P73txunbtooceesK7KIHb7dZvftNJkjR9+qSLcFcAAOB8MDkcwEXjcDhMSYqP/8LfpZyXvXv3Kyamib/LuOi6dPGMUiUkJPBdDwAIGDyDAyDgWTHcAAAQqAg4AAAAACyDgAMAAADAMgg4AAAAACyDgAMAAADAMgg4AAAAACyDgAMAAADAMgg4AAAAACyDgAMAAADAMgg4AAAAACyDgAMAAADAMgg4AAAAACyDgAMAAADAMgg4AAAAACyDgAMAAADAMgg4AAAAACyDgAMAAADAMgg4AC6mI5KUn1/g7zoCXl5eftnHI/6sAwCA6kbAAXAxJUpSSkqav+sIeOX+Dnb4sw4AAKqb3d8FALCOxo0bB0nqk5iYotjYGEVGRigkJMTfZQWUvLx8bd+epOnTX1FOTq5M05ySnZ292d91AQBQXQx/FwDAUmwOh2OFpN7+LgSSpFUJCQl9JZn+LgQAgOrCCA6Ai8nMysp6t2HDhhmGYdSSFCEp3N9FBZgjkn4wTXPK5s2bJ4hwAwAAAAQ2h8NhOhwOggEAAL9CLDIAAAAAwDIIOAAAAAAsg4ADAAAAwDIIOAAAAAAsg4ADAAAAwDIIOAAAAAAsg4ADAAAAwDIIOAAAAAAsg4ADAAAAwDIIOAAAAAAsg4CD/8fenYdFWbZtAD/vGTZBxA033AX31Bkwy0yp1zazXHLtyzVFxV1MTa3eejXFNTfMJVMzTc1KzczccC21mUHcFVAURBQQkEVgZu7vD5zJiUVUZGA4f8fBIXM/2zUPA8419/VcDxERERGRzWCCQ0RERERENoMJDhERERER2QwmOEREREREZDOY4BARERERkc1ggkNERERERDaDCQ4REREREdkMJjhERERERGQzmOAQEREREZHNYIJDREREREQ2gwkOERERERHZDCY4RERERERkM5jgEBERERGRzWCCQ0RERERENoMJDhERERER2QwmOEREREREZDOY4BARERERkc1ggkNERERERDaDCQ4REREREdkMYe0AiIisqUWLFjXt7Oym/2t42IN/Vzw8qNfrZ4SGhkYVTWRERET0JJjgEFGp1rNnT2VYWFi0EKJqfutJKWM9PT09tm7daiiq2IiIiOjxKa0dABGRNZ0/f156eHg0AODziFW/279//69FERMRERE9OV6DQ0SlntFo3FaA1QqyDhEREVkZExwiKvUUCsUhKWVCPqvEu7m5HSqygIiIiOiJMcEholJPo9FkCSG257PK9uDgYH2RBURERERPjAkOEREAIUSeJWgKhYLlaURERCUEExwiIgBJSUn7ACTnsig5MTFxf1HHQ0RERE+GCQ4REYCwsLAMKWVuXdJ2hoWFZRR5QERERPREmOAQET2QR5kay9OIiIhKECY4REQPCCF+B5D20FCaEGKPteIhIiKix8cEh4joAY1GkwZgt+mxEOK3B2NERERUQjDBISJ6iJTSXJJWwBuAEhERUTHCBIeI6CEODg67TN87Ozvvym9dIiIiIiKiYk+tVu9Uq9U7rB0HERERPT47awdARFQMbRNCSGsHQURERI9PWDsAIqLiolmzZmWdnJzmSimHSynPZWZmvnDu3LkUa8dFREREBccEh4gIgEqlelcIsRRArYeGbwAYqdVqd1opLCIiInpMSmsHQERkTS1btvTw8PBYK4T4AoBb06YNMWLEQNy5E487d+LdAPStXr16iypVqhyLjY29Z+14iYiIKH9McIioVOrZs6fS0dFxlEKh+AlAK2fnMhg3bhimTx+PJk280LXrWyhf3g0hIWeRlaVvolAohlavXv1eu3btNOfPn+f1OURERMUUS9SIqNRp1apVK4VCsRJAawB49dV2mDjRH1WruudYNzb2DubOXYaDB4+Zhk4ZjUa/kJCQkKKLmIiIiAqKCQ4RlRrNmjUr6+Dg8F8hxDgAyqpV3TF58mh06PDiI7cNDj6OOXOWIjb2DgAYpJRfGQyGz0JDQ1OfddxERERUcExwiKhUUKvVnQEsA1BboVCgb99uGD58AJydyxR4H2lp6fj663XYtOlnGI1GALguhPDXaDS8ISgREVExwQSHiGyaSqWqoVAoFkkpewBAkyZemD59Aho39nzifV64cAUzZizAxYthAAAhxI9Go3GsTqe7WThRExER0ZNikwEiskk9e/ZUOjk5+QshfgGgeriJgLt7pafat7t7JXTt+hbc3Mo9aEKQ1VQIMbRGjRrJ7dq107IJARER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REREDoMJDhEREREROQwmOERERERE5DCY4BARERERkcNggkNERERERA7D1doBEBERkeOIiBho7RCIyMlxBMf+ZANAUZHK2nE4vcLCIv2f2daMg4jIFoiiGG3tGMiQKIonrR0DkTVwBMf+XADQOyEhCd2732ftWJxaQkKS/s/z1oyDiMgWxMTE9LN2DHVBLpeLAKBUKgVrx0JEtcMRHDsjCMJWAFixYi2UytjyowhkIYWFRVAqY/Hee/8FAIiiuNXKIRERERHRbbw6YX9kcrl8D4Bh1g6EAAD7lErlCACitQOxBforn2RbeCWaqPo4gkNk/ziCY3+0SqVyhCiK0wEcBe//sIZsAEdFUZyuVCpHgsmNhDX4toc1+EREREQWIJfLRV7tJ1vF7yeR8+LxT2T/OIJDREREREQOgwkOERERERE5DCY4RERERETkMJjgEBERERGRw2CCQ0REREREDoMJDhEREREROQwmOERERERE5DCY4BARERERkcNggkNERERERA6DCQ4RERERETkMJjhEREREROQwmOAQEREREZHDYIJDREREREQOgwkOERERERE5DCY4RERERETkMJjgEBERERGRw2CCQ0REREREDoMJDhEREREROQwmOERERERE5DCY4BARERERkcNggkNERERERA6DCQ4RERERETkMJjhEREREROQwmOAQEREREZHDYIJDREREREQOgwkOERERERE5DCY4RERERETkMJjgEBERERGRw2CCQ0REREREDoMJDhEREREROQwmOERERERE5DCY4BARERERkcNggkNERERERA6DCQ4RERERETkMJjhEREREROQwmOAQEREREZHDYIJDREREREQOgwkOERERERE5DFdrB0COr0uXLi1cXV1fNzVPLpf/r/xrtVq9LDY2NtUykRERERGRo2GCQ/UuLCwsIzExcaQgCE1NzH5G/4coillhYWFzY2NjLRgdERERETkSwdoBkHOIiIhYL4riLHPLiKK4PiYmZo6lYiKqjFwuFwFAqVTy30giBxYaGuoREBAQUH6aRqPJAAAXF5dm5afn5ubmJiYmllgyPiKqHY7gkEVotdpdgiCYTXAA7LJIMERERAACAgICNBpNOkxc8NUnOrdpAwICggFkWiw4Iqo1Nhkgi5DJZEdFUbxhZpEcf3//oxYLiIiInN7ff/+dCeBYNRb97fay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","width":824,"y":-30,"x":-30},"elements":{"page":{"showGrid":true,"gridSize":15,"orientation":"portrait","height":1240,"backgroundColor":"transparent","width":1050,"padding":20},"theme":{"linker":{"lineStyle":{"lineColor":"50,50,50","lineWidth":2},"fontStyle":{"bold":false,"color":"50,50,50","italic":false,"fontFamily":"Arial","size":13}},"name":"colorful_yellow","shape":{"lineStyle":{"lineColor":"50,50,50","lineWidth":2},"fillStyle":{"color":"255,255,237","type":"solid"},"fontStyle":{"bold":false,"color":"50,50,50","italic":false,"fontFamily":"Arial","size":13}}},"elements":{"16c0f80b0693b4":{"id":"16c0f80b0693b4","to":{"id":"16c0f7f54cf74b","y":669.5999984741211,"angle":1.5707963267948966,"x":121.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":641.0999984741211,"x":121.09999084472656},{"y":641.0999984741211,"x":121.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f7c839e4ba","y":612.5999984741211,"angle":4.71238898038469,"x":121.09999084472656},"group":"","props":{"zindex":15}},"16c0f8760b22f9":{"id":"16c0f8760b22f9","to":{"id":"16c0f870fb9d6d","y":921.6000061035156,"angle":1.5707963267948968,"x":674.5999908447266},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":814.6000061035156,"x":674.5999908447266}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f870fb9a2b","y":814.6000061035156,"angle":3.1415926535897936,"x":624.5999908447266},"group":"","props":{"zindex":35}},"16c0f7f54cf74b":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"从pms_sku_stock表中获取商品原价"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f7f54cf835","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f7f54cfb74","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f7f54cfb4b","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f7f54cf7e9","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f7f54cf54c","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f7f54cf74b","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":140,"y":669.5999984741211,"h":70,"angle":0,"x":51.09999084472656,"zindex":14}},"16c0f7cb62ca87":{"id":"16c0f7cb62ca87","to":{"id":"16c0f7c839e4ba","y":542.5999984741211,"angle":1.5707963267948968,"x":121.09999084472656},"text":"=1","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":508.0999984741211,"x":288.59999084472656},{"y":508.0999984741211,"x":121.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f7ae343607","y":473.5999984741211,"angle":4.71238898038469,"x":288.59999084472656},"group":"","props":{"zindex":11}},"16c0f80d1e0bcf":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"从pms_sku_stock表中获取商品促销价"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f80d1e0b1a","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f80d1e0278","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f80d1e0458","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f80d1e09a9","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f80d1e0c86","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f80d1e0bcf","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":140,"y":779.6000061035156,"h":70,"angle":0,"x":51.09999084472656,"zindex":16}},"16c0f8580d9773":{"id":"16c0f8580d9773","to":{"id":"16c0f859048d37","y":921.6000061035156,"angle":1.5707963267948968,"x":419.59999084472656},"text":"否","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":814.6000061035156,"x":419.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f84369f106","y":814.6000061035156,"angle":3.1415926535897936,"x":368.59999084472656},"group":"","props":{"zindex":26}},"16c0f870fb9d6d":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"计算优惠金额:0"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f871b80498","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f871b80c53","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f871b80a0a","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f871b804c3","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f871b8024","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f870fb9d6d","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":921.6000061035156,"h":70,"angle":0,"x":624.5999908447266,"zindex":31}},"16c0f7920daa28":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"根据商品id将购物车中商品分组"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f7beb8933f","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f7beb89cd2","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f7beb89573","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f7beb89bf","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f7beb89cdf","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f7920daa28","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":145.5999984741211,"h":70,"angle":0,"x":238.59999084472656,"zindex":2}},"16c0f8bc012364":{"id":"16c0f8bc012364","to":{"id":"16c0f891ba976","y":1084.6000061035156,"angle":1.5707963267948966,"x":378.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1038.1000061035156,"x":674.5999908447266},{"y":1038.1000061035156,"x":378.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f870fb9d6d","y":991.6000061035156,"angle":4.71238898038469,"x":674.5999908447266},"group":"","props":{"zindex":42}},"16c0f870fb990c":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"计算优惠金额:(原价/总价)*满减金额"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f871b80035","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f871b80028","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f871b802b9","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f871b80ebb","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f871b8065d","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f870fb990c","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"圆角矩形","category":"basic","name":"roundRectangle","path":[{"actions":[{"action":"move","y":"4","x":"0"},{"y1":"0","action":"quadraticCurve","y":"0","x":"4","x1":"0"},{"action":"line","y":"0","x":"w-4"},{"y1":"0","action":"quadraticCurve","y":"4","x":"w","x1":"w"},{"action":"line","y":"h-4","x":"w"},{"y1":"h","action":"quadraticCurve","y":"h","x":"w-4","x1":"w"},{"action":"line","y":"h","x":"4"},{"y1":"h","action":"quadraticCurve","y":"h-4","x":"0","x1":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":921.6000061035156,"zindex":30,"x":494.59999084472656}},"16c0f82581024d":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"从pms_product_ladder表中获取商品打折优惠信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f8261f8959","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f8261f81de","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f8261f8ddb","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f8261f89dc","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f8261f817d","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f82581024d","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":160,"y":674.5999984741211,"h":70,"angle":0,"x":208.59999084472656,"zindex":20}},"16c0f7c839e4ba":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"单品促销"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f7c839f37f","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f7c839fe37","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f7c839f0d4","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f7c839f0c4","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f7c839f7a4","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f7c839e4ba","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":542.5999984741211,"h":70,"angle":0,"x":71.09999084472656,"zindex":8}},"16c0f8759724c7":{"to":{"id":"16c0f870fb990c","angle":1.5707963267948968,"y":921.6000061035156,"x":544.5999908447266},"id":"16c0f8759724c7","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0f870fb9a2b","angle":4.71238898038469,"y":849.6000061035156,"x":544.5999908447266},"dataAttributes":[],"locked":false,"points":[{"y":885.6000061035156,"x":544.5999908447266},{"y":885.6000061035156,"x":544.5999908447266}],"group":"","props":{"zindex":34}},"16c0f8b8ad3389":{"id":"16c0f8b8ad3389","to":{"id":"16c0f891ba976","y":1084.6000061035156,"angle":1.5707963267948966,"x":378.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1038.1000061035156,"x":121.09999084472656},{"y":1038.1000061035156,"x":378.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f818bd363e","y":991.6000061035156,"angle":4.71238898038469,"x":121.09999084472656},"group":"","props":{"zindex":38}},"16c0f7c8ef5b79":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"打折优惠"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f7c8ef5654","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f7c8ef54a2","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f7c8ef5c9a","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f7c8ef5c58","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f7c8ef59ce","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f7c8ef5b79","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"矩形","name":"rectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"0","x":"0"},{"action":"line","y":"0","x":"w"},{"action":"line","y":"h","x":"w"},{"action":"line","y":"h","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":542.5999984741211,"h":70,"angle":0,"x":238.59999084472656,"zindex":9}},"16c0f8277e2142":{"id":"16c0f8277e2142","to":{"id":"16c0f82581024d","y":674.5999984741211,"angle":1.5707963267948966,"x":288.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":643.5999984741211,"x":288.59999084472656},{"y":643.5999984741211,"x":288.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f7c8ef5b79","y":612.5999984741211,"angle":4.71238898038469,"x":288.59999084472656},"group":"","props":{"zindex":21}},"16c0f7ceb24366":{"to":{"id":"16c0f7c9c6c1bb","angle":1.5707963267948968,"y":538.5999984741211,"x":544.5999908447266},"id":"16c0f7ceb24366","linkerType":"broken","text":"=4","lineStyle":{},"name":"linker","from":{"id":"16c0f7ae343607","angle":4.71238898038469,"y":473.5999984741211,"x":288.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":506.0999984741211,"x":288.59999084472656},{"y":506.0999984741211,"x":544.5999908447266}],"group":"","props":{"zindex":13}},"16c0f823f5a25a":{"id":"16c0f823f5a25a","to":{"id":"16c0f818bd363e","y":921.6000061035156,"angle":1.5707963267948968,"x":121.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":885.6000061035156,"x":121.09999084472656},{"y":885.6000061035156,"x":121.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f80d1e0bcf","y":849.6000061035156,"angle":4.71238898038469,"x":121.09999084472656},"group":"","props":{"zindex":19}},"16c0f859048d37":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"计算优惠金额:0"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f859049894","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f85904909d","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f859049e65","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f859049904","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f85904981e","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f859048d37","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":921.6000061035156,"h":70,"angle":0,"x":368.59999084472656,"zindex":27}},"16c0f7c9c6c1bb":{"textBlock":[{"position":{"w":"w-20","h":"h","y":0,"x":10},"text":"满减优惠"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f7c9c6d6be","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f7c9c6d62b","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f7c9c6d7a7","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f7c9c6de9e","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f7c9c6d39c","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f7c9c6c1bb","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"title":"矩形","category":"basic","name":"rectangle","path":[{"actions":[{"action":"move","y":"0","x":"0"},{"action":"line","y":"0","x":"w"},{"action":"line","y":"h","x":"w"},{"action":"line","y":"h","x":"0"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":100,"angle":0,"h":70,"y":538.5999984741211,"zindex":10,"x":494.59999084472656}},"16c0f78ba50abd":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"获取购物车列表"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f7bcfbacc7","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f7bcfba558","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f7bcfbad95","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f7bcfba11e","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f7bcfbae64","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f78ba50abd","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":39.599998474121094,"h":70,"angle":0,"x":238.59999084472656,"zindex":1}},"16c0f7b2fe13b8":{"id":"16c0f7b2fe13b8","to":{"id":"16c0f7ae343607","y":381.5999984741211,"angle":1.5707963267948968,"x":288.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":357.5999984741211,"x":288.59999084472656},{"y":357.5999984741211,"x":288.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f7a2847236","y":333.5999984741211,"angle":4.71238898038469,"x":288.59999084472656},"group":"","props":{"zindex":7}},"16c0f870fb9a2b":{"textBlock":[{"position":{"w":"w-20","y":"h*0.13","h":"h*0.75","x":"10"},"text":"判断当前购买商品金额是否满足满减要求"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f871b80f39","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f871b80c37","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f871b80a27","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f871b808a6","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f871b80857","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f870fb9a2b","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","name":"diamond","fillStyle":{},"path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":160,"y":779.6000061035156,"h":70,"angle":0,"x":464.59999084472656,"zindex":29}},"16c0f8ace59705":{"id":"16c0f8ace59705","to":{"id":"16c0f7a2847236","y":263.5999984741211,"angle":1.5707963267948968,"x":288.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":239.5999984741211,"x":288.59999084472656},{"y":239.5999984741211,"x":288.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f7920daa28","y":215.5999984741211,"angle":4.71238898038469,"x":288.59999084472656},"group":"","props":{"zindex":37}},"16c0f7a2847236":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"查询商品的优惠信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f7c03c15bb","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f7c03c1685","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f7c03c1649","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f7c03c12e1","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f7c03c1c33","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f7a2847236","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":263.5999984741211,"h":70,"angle":0,"x":238.59999084472656,"zindex":4}},"16c0f8b9903fb3":{"id":"16c0f8b9903fb3","to":{"id":"16c0f891ba976","y":1084.6000061035156,"angle":1.5707963267948966,"x":378.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1038.1000061035156,"x":291.59999084472656},{"y":1038.1000061035156,"x":378.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f856d98f2c","y":991.6000061035156,"angle":4.71238898038469,"x":291.59999084472656},"group":"","props":{"zindex":39}},"16c0f7cc7452dc":{"to":{"id":"16c0f7c8ef5b79","angle":1.5707963267948968,"y":542.5999984741211,"x":288.59999084472656},"id":"16c0f7cc7452dc","linkerType":"broken","text":"=3","lineStyle":{},"name":"linker","from":{"id":"16c0f7ae343607","angle":4.71238898038469,"y":473.5999984741211,"x":288.59999084472656},"dataAttributes":[],"locked":false,"points":[{"y":508.0999984741211,"x":288.59999084472656},{"y":508.0999984741211,"x":288.59999084472656}],"group":"","props":{"zindex":12}},"16c0f85585ad7d":{"id":"16c0f85585ad7d","to":{"id":"16c0f856d98f2c","y":921.6000061035156,"angle":1.5707963267948968,"x":291.59999084472656},"text":"是","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":885.6000061035156,"x":288.59999084472656},{"y":885.6000061035156,"x":291.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f84369f106","y":849.6000061035156,"angle":4.71238898038469,"x":288.59999084472656},"group":"","props":{"zindex":24}},"16c0f891ba976":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"优惠金额计算结束"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f896a088f8","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f896a0846d","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f896a0836","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f896a080da","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f896a081f6","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f891ba976","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":1084.6000061035156,"h":70,"angle":0,"x":328.09999084472656,"zindex":36}},"16c0f87508128a":{"id":"16c0f87508128a","to":{"id":"16c0f870fb9a2b","y":779.6000061035156,"angle":1.5707963267948966,"x":544.5999908447266},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":760.8500022888184,"x":544.5999908447266},{"y":760.8500022888184,"x":544.5999908447266}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f870fb915a","y":742.0999984741211,"angle":4.71238898038469,"x":544.5999908447266},"group":"","props":{"zindex":33}},"16c0f818bd363e":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"计算优惠金额:原价-促销价"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f894e7028f","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f894e701f7","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f894e7026d","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f894e70ae3","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f894e70cd2","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f818bd363e","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":140,"y":921.6000061035156,"h":70,"angle":0,"x":51.09999084472656,"zindex":18}},"16c0f8baed3161":{"to":{"id":"16c0f891ba976","angle":1.5707963267948966,"y":1084.6000061035156,"x":378.09999084472656},"id":"16c0f8baed3161","linkerType":"broken","text":"","lineStyle":{},"name":"linker","from":{"id":"16c0f870fb990c","angle":4.71238898038469,"y":991.6000061035156,"x":544.5999908447266},"dataAttributes":[],"locked":false,"points":[{"y":1038.1000061035156,"x":544.5999908447266},{"y":1038.1000061035156,"x":378.09999084472656}],"group":"","props":{"zindex":41}},"16c0f813af30de":{"id":"16c0f813af30de","to":{"id":"16c0f80d1e0bcf","y":779.6000061035156,"angle":1.5707963267948968,"x":121.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":759.6000022888184,"x":121.09999084472656},{"y":759.6000022888184,"x":121.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f7f54cf74b","y":739.5999984741211,"angle":4.71238898038469,"x":121.09999084472656},"group":"","props":{"zindex":17}},"16c0f7ae343607":{"textBlock":[{"position":{"w":"w-20","h":"h*0.75","y":"h*0.13","x":"10"},"text":"根据商品促销类型promotion_type计算商品优惠"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f7c3e41887","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f7c3e415a7","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f7c3e41aac","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f7c3e41383","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f7c3e41eae","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f7ae343607","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","name":"diamond","path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"fillStyle":{},"locked":false,"group":"","props":{"w":147,"angle":0,"h":92,"y":381.5999984741211,"zindex":6,"x":215.09999084472656}},"16c0f870fb915a":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"从pms_product_full_reduction表中获取商品满减优惠信息"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f871b7ff47","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f871b7f8d3","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f871b7f67a","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f871b7f492","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f871b7f31b","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f870fb915a","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":160,"y":672.0999984741211,"h":70,"angle":0,"x":464.59999084472656,"zindex":28}},"16c0f84369f106":{"textBlock":[{"position":{"w":"w-20","y":"h*0.13","h":"h*0.75","x":"10"},"text":"判断当前购买商品数量是否满足打折要求"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f84e3200f1","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f84e32028e","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f84e320c16","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f84e32060c","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f84e320d3d","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f84369f106","anchors":[{"y":"h/2","x":"0"},{"y":"0","x":"w/2"},{"y":"h/2","x":"w"},{"y":"h","x":"w/2"}],"category":"basic","name":"diamond","fillStyle":{},"path":[{"actions":[{"action":"move","y":"h/2","x":"0"},{"action":"line","y":"0","x":"w/2"},{"action":"line","y":"h/2","x":"w"},{"action":"line","y":"h","x":"w/2"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":160,"y":779.6000061035156,"h":70,"angle":0,"x":208.59999084472656,"zindex":22}},"16c0f792d1af73":{"id":"16c0f792d1af73","to":{"id":"16c0f7920daa28","y":145.5999984741211,"angle":1.5707963267948968,"x":288.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":127.5999984741211,"x":288.59999084472656},{"y":127.5999984741211,"x":288.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f78ba50abd","y":109.5999984741211,"angle":4.71238898038469,"x":288.59999084472656},"group":"","props":{"zindex":3}},"16c0f846659f15":{"id":"16c0f846659f15","to":{"id":"16c0f84369f106","y":779.6000061035156,"angle":1.5707963267948968,"x":288.59999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":762.1000022888184,"x":288.59999084472656},{"y":762.1000022888184,"x":288.59999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f82581024d","y":744.5999984741211,"angle":4.71238898038469,"x":288.59999084472656},"group":"","props":{"zindex":23}},"16c0f8746f9833":{"id":"16c0f8746f9833","to":{"id":"16c0f870fb915a","y":672.0999984741211,"angle":1.5707963267948968,"x":544.5999908447266},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":640.3499984741211,"x":544.5999908447266},{"y":640.3499984741211,"x":544.5999908447266}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f7c9c6c1bb","y":608.5999984741211,"angle":4.71238898038469,"x":544.5999908447266},"group":"","props":{"zindex":32}},"16c0f8ba51a03b":{"id":"16c0f8ba51a03b","to":{"id":"16c0f891ba976","y":1084.6000061035156,"angle":1.5707963267948966,"x":378.09999084472656},"text":"","linkerType":"broken","name":"linker","lineStyle":{},"points":[{"y":1038.1000061035156,"x":418.59999084472656},{"y":1038.1000061035156,"x":378.09999084472656}],"locked":false,"dataAttributes":[],"from":{"id":"16c0f859048d37","y":991.6000061035156,"angle":4.71238898038469,"x":418.59999084472656},"group":"","props":{"zindex":40}},"16c0f856d98f2c":{"textBlock":[{"position":{"w":"w-20","y":0,"h":"h","x":10},"text":"计算优惠金额:原价-折扣*原价"}],"lineStyle":{},"link":"","children":[],"parent":"","attribute":{"linkable":true,"visible":true,"container":false,"rotatable":true,"markerOffset":5,"collapsable":false,"collapsed":false},"fontStyle":{},"resizeDir":["tl","tr","br","bl"],"dataAttributes":[{"id":"16c0f856d9951f","category":"default","name":"序号","value":"","type":"number"},{"id":"16c0f856d99236","category":"default","name":"名称","value":"","type":"string"},{"id":"16c0f856d99afa","category":"default","name":"所有者","value":"","type":"string"},{"id":"16c0f856d99afc","category":"default","name":"连接","value":"","type":"link"},{"id":"16c0f856d99ef","category":"default","name":"便笺","value":"","type":"string"}],"shapeStyle":{"alpha":1},"id":"16c0f856d98f2c","anchors":[{"y":"0","x":"w/2"},{"y":"h","x":"w/2"},{"y":"h/2","x":"0"},{"y":"h/2","x":"w"}],"category":"basic","title":"圆角矩形","name":"roundRectangle","fillStyle":{},"path":[{"actions":[{"action":"move","y":"4","x":"0"},{"action":"quadraticCurve","y1":"0","y":"0","x1":"0","x":"4"},{"action":"line","y":"0","x":"w-4"},{"action":"quadraticCurve","y1":"0","y":"4","x1":"w","x":"w"},{"action":"line","y":"h-4","x":"w"},{"action":"quadraticCurve","y1":"h","y":"h","x1":"w","x":"w-4"},{"action":"line","y":"h","x":"4"},{"action":"quadraticCurve","y1":"h","y":"h-4","x1":"0","x":"0"},{"action":"close"}]}],"locked":false,"group":"","props":{"w":100,"y":921.6000061035156,"h":70,"angle":0,"x":241.59999084472656,"zindex":25}}}}},"meta":{"id":"5d331068e4b065dc42abfd25","member":"5a210b2ee4b04f355d337104","exportTime":"2019-12-21 14:39:14","diagramInfo":{"category":"flow","title":"购物车优惠计算流程","created":"2019-07-20 21:00:24","creator":"5a210b2ee4b04f355d337104","modified":"2019-07-21 18:49:33"},"type":"ProcessOn Schema File","version":"1.0"}} \ No newline at end of file diff --git a/document/ppt/mall-slidev.md b/document/ppt/mall-slidev.md deleted file mode 100644 index 648d2578..00000000 --- a/document/ppt/mall-slidev.md +++ /dev/null @@ -1,235 +0,0 @@ ---- -# 配置主题 -theme: penguin -# 幻灯片的配色方案,可以使用 'auto','light' 或者 'dark' -colorSchema: 'auto' -layout: intro -# 代码语法高亮设置,可以使用 'prism' 或 'shiki' 方案 -highlighter: shiki -# 用于主题定制 -themeConfig: - # 配置封面页左上角Logo - logoHeader: '/logo_round.png' - # 配置全局左下角Logo - eventLogo: '/github.png' - # 配置全局左下角Logo跳转路径 - eventUrl: 'https://github.com/macrozheng' -css: unocss ---- - -# Mall开源电商项目 - -`mall`项目致力于打造一个完整的电商系统,采用现阶段流行技术实现。 - -

- - 快速开始 - -
- ---- -layout: presenter -presenterImage: '/logo.png' ---- - -# macrozheng的个人介绍 - -SpringBoot实战电商项目mall(50K+Star)的作者。 - -- Github:https://github.com/macrozheng -- Gitee:https://gitee.com/macrozheng -- 掘金:https://juejin.cn/user/958429871749192 -- 知乎:https://www.zhihu.com/people/macrozheng - ---- -layout: default ---- - -# 项目介绍 - -`mall`项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。 - -- 文档地址:[https://www.macrozheng.com](https://www.macrozheng.com) -- 备用地址:[https://macrozheng.github.io/mall-learning](https://macrozheng.github.io/mall-learning) - ---- -layout: text-image -media: 'http://img.macrozheng.com/mall/project/mall_admin_show.png' ---- - -# 项目演示 - -### 后台管理系统 - -mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。 - -- 前端项目mall-admin-web地址:https://github.com/macrozheng/mall-admin-web - -- 项目演示地址: [https://www.macrozheng.com/admin/index.html](https://www.macrozheng.com/admin/index.html) - ---- -layout: default ---- - -### 组织结构 - -``` lua -mall -├── mall-common -- 工具类及通用代码 -├── mall-mbg -- MyBatisGenerator生成的数据库操作代码 -├── mall-security -- SpringSecurity封装公用模块 -├── mall-admin -- 后台商城管理系统接口 -├── mall-search -- 基于Elasticsearch的商品搜索系统 -├── mall-portal -- 前台商城系统接口 -└── mall-demo -- 框架搭建时的测试代码 -``` - ---- - -# 技术选型-后端 - -| 技术 | 说明 | 官网 | -| -------------------- | ------------------- | ---------------------------------------------- | -| SpringBoot | 容器+MVC框架 | https://spring.io/projects/spring-boot | -| SpringSecurity | 认证和授权框架 | https://spring.io/projects/spring-security | -| MyBatis | ORM框架 | http://www.mybatis.org/mybatis-3/zh/index.html | -| MyBatisGenerator | 数据层代码生成 | http://www.mybatis.org/generator/index.html | -| Elasticsearch | 搜索引擎 | https://github.com/elastic/elasticsearch | -| RabbitMQ | 消息队列 | https://www.rabbitmq.com/ | -| Redis | 分布式缓存 | https://redis.io/ | -| MongoDB | NoSql数据库 | https://www.mongodb.com | -| LogStash | 日志收集工具 | https://github.com/elastic/logstash | -| Kibana | 日志可视化查看工具 | https://github.com/elastic/kibana | -| Nginx | 静态资源服务器 | https://www.nginx.com/ | -| Docker | 应用容器引擎 | https://www.docker.com | -| Jenkins | 自动化部署工具 | https://github.com/jenkinsci/jenkins | -| Druid | 数据库连接池 | https://github.com/alibaba/druid | -| OSS | 对象存储 | https://github.com/aliyun/aliyun-oss-java-sdk | -| MinIO | 对象存储 | https://github.com/minio/minio | -| JWT | JWT登录支持 | https://github.com/jwtk/jjwt | -| Lombok | 简化对象封装工具 | https://github.com/rzwitserloot/lombok | -| Hutool | Java工具类库 | https://github.com/looly/hutool | -| PageHelper | MyBatis物理分页插件 | http://git.oschina.net/free/Mybatis_PageHelper | -| Swagger-UI | 文档生成工具 | https://github.com/swagger-api/swagger-ui | -| Hibernator-Validator | 验证框架 | http://hibernate.org/validator | - ---- - -# 技术选型-前端 - -| 技术 | 说明 | 官网 | -| ---------- | --------------------- | -------------------------------------- | -| Vue | 前端框架 | https://vuejs.org/ | -| Vue-router | 路由框架 | https://router.vuejs.org/ | -| Vuex | 全局状态管理框架 | https://vuex.vuejs.org/ | -| Element | 前端UI框架 | https://element.eleme.io | -| Axios | 前端HTTP框架 | https://github.com/axios/axios | -| v-charts | 基于Echarts的图表框架 | https://v-charts.js.org/ | -| Js-cookie | cookie管理工具 | https://github.com/js-cookie/js-cookie | -| nprogress | 进度条控件 | https://github.com/rstacruz/nprogress | - ---- -layout: new-section ---- - -# 系统架构 - - -![系统架构图](http://img.macrozheng.com/mall/project/mall_micro_service_arch.jpg) - ---- -layout: text-window ---- - -# 业务架构 - -- 商品管理:[功能结构图-商品.jpg](document/resource/mind_product.jpg) -- 订单管理:[功能结构图-订单.jpg](document/resource/mind_order.jpg) -- 促销管理:[功能结构图-促销.jpg](document/resource/mind_sale.jpg) -- 内容管理:[功能结构图-内容.jpg](document/resource/mind_content.jpg) -- 用户管理:[功能结构图-用户.jpg](document/resource/mind_member.jpg) - -::window:: - -![业务架构图](http://img.macrozheng.com/mall/project/mall_business_arch.png) - - ---- - -# Windows环境部署 - -- Windows环境搭建请参考:[mall在Windows环境下的部署](https://www.macrozheng.com/mall/deploy/mall_deploy_windows.html); -- 注意:只启动mall-admin,仅需安装Mysql、Redis即可; -- 克隆`mall-admin-web`项目,并导入到IDEA中完成编译:[前端项目地址](https://github.com/macrozheng/mall-admin-web); -- `mall-admin-web`项目的安装及部署请参考:[mall前端项目的安装与部署](https://www.macrozheng.com/mall/deploy/mall_deploy_web.html) 。 - ---- - -# Docker环境部署 - -- 使用虚拟机安装CentOS7.6请参考:[虚拟机安装及使用Linux,看这一篇就够了](https://www.macrozheng.com/tool/linux_install.html); -- Docker环境的安装请参考:[开发者必备Docker命令](https://www.macrozheng.com/mall/reference/linux_command.html); -- 本项目Docker镜像构建请参考:[使用Maven插件为SpringBoot应用构建Docker镜像](https://www.macrozheng.com/project/maven_docker_fabric8.html); -- 本项目在Docker容器下的部署请参考:[mall在Linux环境下的部署(基于Docker容器)](https://www.macrozheng.com/mall/deploy/mall_deploy_docker.html); -- 本项目使用Docker Compose请参考: [mall在Linux环境下的部署(基于Docker Compose)](https://www.macrozheng.com/mall/deploy/mall_deploy_docker_compose.html); -- 本项目在Linux下的自动化部署请参考:[mall在Linux环境下的自动化部署(基于Jenkins)](https://www.macrozheng.com/mall/deploy/mall_deploy_jenkins.html); - ---- -layout: two-cols ---- - -# 相关代码展示 - -```yaml -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false - username: root - password: root - druid: - initial-size: 5 #连接池初始化大小 - min-idle: 10 #最小空闲连接数 - max-active: 20 #最大连接数 - web-stat-filter: - exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据 - stat-view-servlet: #访问监控网页的登录用户名和密码 - login-username: druid - login-password: druid - redis: - host: localhost # Redis服务器地址 - database: 0 # Redis数据库索引(默认为0) - port: 6379 # Redis服务器连接端口 - password: # Redis服务器连接密码(默认为空) - timeout: 300ms # 连接超时时间(毫秒) -``` - -::right:: - -```java -/** - * 全局跨域配置 - * Created by macro on 2019/7/27. - */ -@Configuration -public class GlobalCorsConfig { - - /** - * 允许跨域调用的过滤器 - */ - @Bean - public CorsFilter corsFilter() { - CorsConfiguration config = new CorsConfiguration(); - //允许所有域名进行跨域调用 - config.addAllowedOriginPattern("*"); - //允许跨越发送cookie - config.setAllowCredentials(true); - //放行全部原始头信息 - config.addAllowedHeader("*"); - //允许所有请求方法跨域调用 - config.addAllowedMethod("*"); - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - source.registerCorsConfiguration("/**", config); - return new CorsFilter(source); - } -} -``` \ No newline at end of file diff --git a/document/redis-cluster/config/nodes-6391.conf b/document/redis-cluster/config/nodes-6391.conf deleted file mode 100644 index b9d38c81..00000000 --- a/document/redis-cluster/config/nodes-6391.conf +++ /dev/null @@ -1,1372 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Notice option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all the network interfaces available on the server. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only into -# the IPv4 loopback interface address (this means Redis will be able to -# accept connections only from clients running into the same computer it -# is running). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6391 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need an high backlog in order -# to avoid slow clients connections issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous liveness pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir "/data" - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, -# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, -# COMMAND, POST, HOST: and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# ------------------------------------------------------- -# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY -# ------------------------------------------------------- -# -# New replicas and reconnecting replicas that are not able to continue the replication -# process just receiving differences, need to do what is called a "full -# synchronization". An RDB file is transmitted from the master to the replicas. -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child producing -# the RDB file finishes its work. With diskless replication instead once -# the transfer starts, new replicas arriving will be queued and a new transfer -# will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple replicas -# will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the server -# waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# Replicas send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_replica_period option. The default value is 10 -# seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a replica -# wants to reconnect again, often a full resync is not needed, but a partial -# resync is enough, just passing the portion of data the replica missed while -# disconnected. -# -# The bigger the replication backlog, the longer the time the replica can be -# disconnected and later be able to perform a partial resynchronization. -# -# The backlog is only allocated once there is at least a replica connected. -# -# repl-backlog-size 1mb - -# After a master has no longer connected replicas for some time, the backlog -# will be freed. The following option configures the amount of seconds that -# need to elapse, starting from the time the last replica disconnected, for -# the backlog buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with the replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a -# master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel will -# pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP and address normally reported by a replica is obtained -# in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may be actually reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> Evict using approximated LRU among the keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key among the ones with an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. For default Redis will check five keys and pick the one that was -# used less recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica to have -# a different memory setting, and you are sure all the writes performed to the -# replica are idempotent, then you may change this default (but be sure to understand -# what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory and so -# forth). So make sure you monitor your replicas and make sure they have enough -# memory to never hit a real out-of-memory condition before the master hits -# the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives: - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, and continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -cluster-config-file nodes-6391.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are multiple of the node timeout. -# -cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least an hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instruct the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usually. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# A Alias for g$lshzxe, so that the "AKE" string means all the events. -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited ot 512 mb. However you can change this limit -# here. -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporary raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used as -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A Special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested -# even in production and manually tested by multiple engineers for some -# time. -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in an "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag yes - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage -# active-defrag-cycle-min 5 - -# Maximal effort for defrag in CPU percentage -# active-defrag-cycle-max 75 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - diff --git a/document/redis-cluster/config/nodes-6392.conf b/document/redis-cluster/config/nodes-6392.conf deleted file mode 100644 index c2b10795..00000000 --- a/document/redis-cluster/config/nodes-6392.conf +++ /dev/null @@ -1,1372 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Notice option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all the network interfaces available on the server. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only into -# the IPv4 loopback interface address (this means Redis will be able to -# accept connections only from clients running into the same computer it -# is running). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6392 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need an high backlog in order -# to avoid slow clients connections issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous liveness pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir "/data" - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, -# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, -# COMMAND, POST, HOST: and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# ------------------------------------------------------- -# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY -# ------------------------------------------------------- -# -# New replicas and reconnecting replicas that are not able to continue the replication -# process just receiving differences, need to do what is called a "full -# synchronization". An RDB file is transmitted from the master to the replicas. -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child producing -# the RDB file finishes its work. With diskless replication instead once -# the transfer starts, new replicas arriving will be queued and a new transfer -# will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple replicas -# will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the server -# waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# Replicas send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_replica_period option. The default value is 10 -# seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a replica -# wants to reconnect again, often a full resync is not needed, but a partial -# resync is enough, just passing the portion of data the replica missed while -# disconnected. -# -# The bigger the replication backlog, the longer the time the replica can be -# disconnected and later be able to perform a partial resynchronization. -# -# The backlog is only allocated once there is at least a replica connected. -# -# repl-backlog-size 1mb - -# After a master has no longer connected replicas for some time, the backlog -# will be freed. The following option configures the amount of seconds that -# need to elapse, starting from the time the last replica disconnected, for -# the backlog buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with the replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a -# master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel will -# pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP and address normally reported by a replica is obtained -# in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may be actually reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> Evict using approximated LRU among the keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key among the ones with an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. For default Redis will check five keys and pick the one that was -# used less recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica to have -# a different memory setting, and you are sure all the writes performed to the -# replica are idempotent, then you may change this default (but be sure to understand -# what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory and so -# forth). So make sure you monitor your replicas and make sure they have enough -# memory to never hit a real out-of-memory condition before the master hits -# the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives: - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, and continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -cluster-config-file nodes-6392.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are multiple of the node timeout. -# -cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least an hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instruct the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usually. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# A Alias for g$lshzxe, so that the "AKE" string means all the events. -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited ot 512 mb. However you can change this limit -# here. -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporary raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used as -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A Special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested -# even in production and manually tested by multiple engineers for some -# time. -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in an "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag yes - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage -# active-defrag-cycle-min 5 - -# Maximal effort for defrag in CPU percentage -# active-defrag-cycle-max 75 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - diff --git a/document/redis-cluster/config/nodes-6393.conf b/document/redis-cluster/config/nodes-6393.conf deleted file mode 100644 index 5d322b93..00000000 --- a/document/redis-cluster/config/nodes-6393.conf +++ /dev/null @@ -1,1372 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Notice option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all the network interfaces available on the server. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only into -# the IPv4 loopback interface address (this means Redis will be able to -# accept connections only from clients running into the same computer it -# is running). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6393 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need an high backlog in order -# to avoid slow clients connections issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous liveness pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir "/data" - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, -# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, -# COMMAND, POST, HOST: and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# ------------------------------------------------------- -# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY -# ------------------------------------------------------- -# -# New replicas and reconnecting replicas that are not able to continue the replication -# process just receiving differences, need to do what is called a "full -# synchronization". An RDB file is transmitted from the master to the replicas. -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child producing -# the RDB file finishes its work. With diskless replication instead once -# the transfer starts, new replicas arriving will be queued and a new transfer -# will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple replicas -# will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the server -# waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# Replicas send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_replica_period option. The default value is 10 -# seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a replica -# wants to reconnect again, often a full resync is not needed, but a partial -# resync is enough, just passing the portion of data the replica missed while -# disconnected. -# -# The bigger the replication backlog, the longer the time the replica can be -# disconnected and later be able to perform a partial resynchronization. -# -# The backlog is only allocated once there is at least a replica connected. -# -# repl-backlog-size 1mb - -# After a master has no longer connected replicas for some time, the backlog -# will be freed. The following option configures the amount of seconds that -# need to elapse, starting from the time the last replica disconnected, for -# the backlog buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with the replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a -# master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel will -# pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP and address normally reported by a replica is obtained -# in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may be actually reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> Evict using approximated LRU among the keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key among the ones with an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. For default Redis will check five keys and pick the one that was -# used less recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica to have -# a different memory setting, and you are sure all the writes performed to the -# replica are idempotent, then you may change this default (but be sure to understand -# what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory and so -# forth). So make sure you monitor your replicas and make sure they have enough -# memory to never hit a real out-of-memory condition before the master hits -# the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives: - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, and continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -cluster-config-file nodes-6393.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are multiple of the node timeout. -# -cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least an hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instruct the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usually. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# A Alias for g$lshzxe, so that the "AKE" string means all the events. -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited ot 512 mb. However you can change this limit -# here. -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporary raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used as -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A Special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested -# even in production and manually tested by multiple engineers for some -# time. -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in an "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag yes - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage -# active-defrag-cycle-min 5 - -# Maximal effort for defrag in CPU percentage -# active-defrag-cycle-max 75 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - diff --git a/document/redis-cluster/config/nodes-6394.conf b/document/redis-cluster/config/nodes-6394.conf deleted file mode 100644 index f71a0667..00000000 --- a/document/redis-cluster/config/nodes-6394.conf +++ /dev/null @@ -1,1372 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Notice option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all the network interfaces available on the server. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only into -# the IPv4 loopback interface address (this means Redis will be able to -# accept connections only from clients running into the same computer it -# is running). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6394 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need an high backlog in order -# to avoid slow clients connections issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous liveness pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir "/data" - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, -# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, -# COMMAND, POST, HOST: and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# ------------------------------------------------------- -# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY -# ------------------------------------------------------- -# -# New replicas and reconnecting replicas that are not able to continue the replication -# process just receiving differences, need to do what is called a "full -# synchronization". An RDB file is transmitted from the master to the replicas. -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child producing -# the RDB file finishes its work. With diskless replication instead once -# the transfer starts, new replicas arriving will be queued and a new transfer -# will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple replicas -# will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the server -# waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# Replicas send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_replica_period option. The default value is 10 -# seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a replica -# wants to reconnect again, often a full resync is not needed, but a partial -# resync is enough, just passing the portion of data the replica missed while -# disconnected. -# -# The bigger the replication backlog, the longer the time the replica can be -# disconnected and later be able to perform a partial resynchronization. -# -# The backlog is only allocated once there is at least a replica connected. -# -# repl-backlog-size 1mb - -# After a master has no longer connected replicas for some time, the backlog -# will be freed. The following option configures the amount of seconds that -# need to elapse, starting from the time the last replica disconnected, for -# the backlog buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with the replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a -# master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel will -# pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP and address normally reported by a replica is obtained -# in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may be actually reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> Evict using approximated LRU among the keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key among the ones with an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. For default Redis will check five keys and pick the one that was -# used less recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica to have -# a different memory setting, and you are sure all the writes performed to the -# replica are idempotent, then you may change this default (but be sure to understand -# what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory and so -# forth). So make sure you monitor your replicas and make sure they have enough -# memory to never hit a real out-of-memory condition before the master hits -# the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives: - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, and continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -cluster-config-file nodes-6394.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are multiple of the node timeout. -# -cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least an hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instruct the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usually. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# A Alias for g$lshzxe, so that the "AKE" string means all the events. -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited ot 512 mb. However you can change this limit -# here. -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporary raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used as -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A Special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested -# even in production and manually tested by multiple engineers for some -# time. -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in an "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag yes - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage -# active-defrag-cycle-min 5 - -# Maximal effort for defrag in CPU percentage -# active-defrag-cycle-max 75 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - diff --git a/document/redis-cluster/config/nodes-6395.conf b/document/redis-cluster/config/nodes-6395.conf deleted file mode 100644 index d0fd8b81..00000000 --- a/document/redis-cluster/config/nodes-6395.conf +++ /dev/null @@ -1,1372 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Notice option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all the network interfaces available on the server. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only into -# the IPv4 loopback interface address (this means Redis will be able to -# accept connections only from clients running into the same computer it -# is running). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6395 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need an high backlog in order -# to avoid slow clients connections issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous liveness pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir "/data" - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, -# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, -# COMMAND, POST, HOST: and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# ------------------------------------------------------- -# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY -# ------------------------------------------------------- -# -# New replicas and reconnecting replicas that are not able to continue the replication -# process just receiving differences, need to do what is called a "full -# synchronization". An RDB file is transmitted from the master to the replicas. -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child producing -# the RDB file finishes its work. With diskless replication instead once -# the transfer starts, new replicas arriving will be queued and a new transfer -# will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple replicas -# will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the server -# waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# Replicas send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_replica_period option. The default value is 10 -# seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a replica -# wants to reconnect again, often a full resync is not needed, but a partial -# resync is enough, just passing the portion of data the replica missed while -# disconnected. -# -# The bigger the replication backlog, the longer the time the replica can be -# disconnected and later be able to perform a partial resynchronization. -# -# The backlog is only allocated once there is at least a replica connected. -# -# repl-backlog-size 1mb - -# After a master has no longer connected replicas for some time, the backlog -# will be freed. The following option configures the amount of seconds that -# need to elapse, starting from the time the last replica disconnected, for -# the backlog buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with the replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a -# master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel will -# pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP and address normally reported by a replica is obtained -# in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may be actually reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> Evict using approximated LRU among the keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key among the ones with an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. For default Redis will check five keys and pick the one that was -# used less recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica to have -# a different memory setting, and you are sure all the writes performed to the -# replica are idempotent, then you may change this default (but be sure to understand -# what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory and so -# forth). So make sure you monitor your replicas and make sure they have enough -# memory to never hit a real out-of-memory condition before the master hits -# the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives: - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, and continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -cluster-config-file nodes-6395.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are multiple of the node timeout. -# -cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least an hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instruct the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usually. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# A Alias for g$lshzxe, so that the "AKE" string means all the events. -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited ot 512 mb. However you can change this limit -# here. -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporary raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used as -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A Special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested -# even in production and manually tested by multiple engineers for some -# time. -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in an "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag yes - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage -# active-defrag-cycle-min 5 - -# Maximal effort for defrag in CPU percentage -# active-defrag-cycle-max 75 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - diff --git a/document/redis-cluster/config/nodes-6396.conf b/document/redis-cluster/config/nodes-6396.conf deleted file mode 100644 index efcf451c..00000000 --- a/document/redis-cluster/config/nodes-6396.conf +++ /dev/null @@ -1,1372 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Notice option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all the network interfaces available on the server. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only into -# the IPv4 loopback interface address (this means Redis will be able to -# accept connections only from clients running into the same computer it -# is running). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6396 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need an high backlog in order -# to avoid slow clients connections issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous liveness pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir "/data" - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, -# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, -# COMMAND, POST, HOST: and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# ------------------------------------------------------- -# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY -# ------------------------------------------------------- -# -# New replicas and reconnecting replicas that are not able to continue the replication -# process just receiving differences, need to do what is called a "full -# synchronization". An RDB file is transmitted from the master to the replicas. -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child producing -# the RDB file finishes its work. With diskless replication instead once -# the transfer starts, new replicas arriving will be queued and a new transfer -# will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple replicas -# will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the server -# waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# Replicas send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_replica_period option. The default value is 10 -# seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a replica -# wants to reconnect again, often a full resync is not needed, but a partial -# resync is enough, just passing the portion of data the replica missed while -# disconnected. -# -# The bigger the replication backlog, the longer the time the replica can be -# disconnected and later be able to perform a partial resynchronization. -# -# The backlog is only allocated once there is at least a replica connected. -# -# repl-backlog-size 1mb - -# After a master has no longer connected replicas for some time, the backlog -# will be freed. The following option configures the amount of seconds that -# need to elapse, starting from the time the last replica disconnected, for -# the backlog buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with the replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a -# master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel will -# pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP and address normally reported by a replica is obtained -# in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may be actually reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> Evict using approximated LRU among the keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key among the ones with an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. For default Redis will check five keys and pick the one that was -# used less recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica to have -# a different memory setting, and you are sure all the writes performed to the -# replica are idempotent, then you may change this default (but be sure to understand -# what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory and so -# forth). So make sure you monitor your replicas and make sure they have enough -# memory to never hit a real out-of-memory condition before the master hits -# the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives: - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, and continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -cluster-config-file nodes-6396.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are multiple of the node timeout. -# -cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least an hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instruct the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usually. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# A Alias for g$lshzxe, so that the "AKE" string means all the events. -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited ot 512 mb. However you can change this limit -# here. -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporary raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used as -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A Special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested -# even in production and manually tested by multiple engineers for some -# time. -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in an "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag yes - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage -# active-defrag-cycle-min 5 - -# Maximal effort for defrag in CPU percentage -# active-defrag-cycle-max 75 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - diff --git a/document/redis-cluster/config/nodes-6397.conf b/document/redis-cluster/config/nodes-6397.conf deleted file mode 100644 index 80c7354c..00000000 --- a/document/redis-cluster/config/nodes-6397.conf +++ /dev/null @@ -1,1372 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Notice option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all the network interfaces available on the server. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only into -# the IPv4 loopback interface address (this means Redis will be able to -# accept connections only from clients running into the same computer it -# is running). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6397 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need an high backlog in order -# to avoid slow clients connections issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous liveness pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir "/data" - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, -# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, -# COMMAND, POST, HOST: and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# ------------------------------------------------------- -# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY -# ------------------------------------------------------- -# -# New replicas and reconnecting replicas that are not able to continue the replication -# process just receiving differences, need to do what is called a "full -# synchronization". An RDB file is transmitted from the master to the replicas. -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child producing -# the RDB file finishes its work. With diskless replication instead once -# the transfer starts, new replicas arriving will be queued and a new transfer -# will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple replicas -# will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the server -# waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# Replicas send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_replica_period option. The default value is 10 -# seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a replica -# wants to reconnect again, often a full resync is not needed, but a partial -# resync is enough, just passing the portion of data the replica missed while -# disconnected. -# -# The bigger the replication backlog, the longer the time the replica can be -# disconnected and later be able to perform a partial resynchronization. -# -# The backlog is only allocated once there is at least a replica connected. -# -# repl-backlog-size 1mb - -# After a master has no longer connected replicas for some time, the backlog -# will be freed. The following option configures the amount of seconds that -# need to elapse, starting from the time the last replica disconnected, for -# the backlog buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with the replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a -# master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel will -# pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP and address normally reported by a replica is obtained -# in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may be actually reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> Evict using approximated LRU among the keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key among the ones with an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. For default Redis will check five keys and pick the one that was -# used less recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica to have -# a different memory setting, and you are sure all the writes performed to the -# replica are idempotent, then you may change this default (but be sure to understand -# what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory and so -# forth). So make sure you monitor your replicas and make sure they have enough -# memory to never hit a real out-of-memory condition before the master hits -# the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives: - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, and continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -cluster-config-file nodes-6397.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are multiple of the node timeout. -# -cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least an hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instruct the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usually. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# A Alias for g$lshzxe, so that the "AKE" string means all the events. -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited ot 512 mb. However you can change this limit -# here. -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporary raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used as -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A Special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested -# even in production and manually tested by multiple engineers for some -# time. -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in an "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag yes - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage -# active-defrag-cycle-min 5 - -# Maximal effort for defrag in CPU percentage -# active-defrag-cycle-max 75 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - diff --git a/document/redis-cluster/config/nodes-6398.conf b/document/redis-cluster/config/nodes-6398.conf deleted file mode 100644 index cdda9645..00000000 --- a/document/redis-cluster/config/nodes-6398.conf +++ /dev/null @@ -1,1372 +0,0 @@ -# Redis configuration file example. -# -# Note that in order to read the configuration file, Redis must be -# started with the file path as first argument: -# -# ./redis-server /path/to/redis.conf - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis servers but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# Notice option "include" won't be rewritten by command "CONFIG REWRITE" -# from admin or Redis Sentinel. Since Redis always uses the last processed -# line as value of a configuration directive, you'd better put includes -# at the beginning of this file to avoid overwriting config change at runtime. -# -# If instead you are interested in using includes to override configuration -# options, it is better to use include as the last line. -# -# include /path/to/local.conf -# include /path/to/other.conf - -################################## MODULES ##################################### - -# Load modules at startup. If the server is not able to load modules -# it will abort. It is possible to use multiple loadmodule directives. -# -# loadmodule /path/to/my_module.so -# loadmodule /path/to/other_module.so - -################################## NETWORK ##################################### - -# By default, if no "bind" configuration directive is specified, Redis listens -# for connections from all the network interfaces available on the server. -# It is possible to listen to just one or multiple selected interfaces using -# the "bind" configuration directive, followed by one or more IP addresses. -# -# Examples: -# -# bind 192.168.1.100 10.0.0.1 -# bind 127.0.0.1 ::1 -# -# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the -# internet, binding to all the interfaces is dangerous and will expose the -# instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only into -# the IPv4 loopback interface address (this means Redis will be able to -# accept connections only from clients running into the same computer it -# is running). -# -# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES -# JUST COMMENT THE FOLLOWING LINE. -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -bind 0.0.0.0 - -# Protected mode is a layer of security protection, in order to avoid that -# Redis instances left open on the internet are accessed and exploited. -# -# When protected mode is on and if: -# -# 1) The server is not binding explicitly to a set of addresses using the -# "bind" directive. -# 2) No password is configured. -# -# The server only accepts connections from clients connecting from the -# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain -# sockets. -# -# By default protected mode is enabled. You should disable it only if -# you are sure you want clients from other hosts to connect to Redis -# even if no authentication is configured, nor a specific set of interfaces -# are explicitly listed using the "bind" directive. -protected-mode no - -# Accept connections on the specified port, default is 6379 (IANA #815344). -# If port 0 is specified Redis will not listen on a TCP socket. -port 6398 - -# TCP listen() backlog. -# -# In high requests-per-second environments you need an high backlog in order -# to avoid slow clients connections issues. Note that the Linux kernel -# will silently truncate it to the value of /proc/sys/net/core/somaxconn so -# make sure to raise both the value of somaxconn and tcp_max_syn_backlog -# in order to get the desired effect. -tcp-backlog 511 - -# Unix socket. -# -# Specify the path for the Unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 700 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. -tcp-keepalive 300 - -################################# GENERAL ##################################### - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize no - -# If you run Redis from upstart or systemd, Redis can interact with your -# supervision tree. Options: -# supervised no - no supervision interaction -# supervised upstart - signal upstart by putting Redis into SIGSTOP mode -# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET -# supervised auto - detect upstart or systemd method based on -# UPSTART_JOB or NOTIFY_SOCKET environment variables -# Note: these supervision methods only signal "process is ready." -# They do not enable continuous liveness pings back to your supervisor. -supervised no - -# If a pid file is specified, Redis writes it where specified at startup -# and removes it at exit. -# -# When the server runs non daemonized, no pid file is created if none is -# specified in the configuration. When the server is daemonized, the pid file -# is used even if not specified, defaulting to "/var/run/redis.pid". -# -# Creating a pid file is best effort: if Redis is not able to create it -# nothing bad happens, the server will start and run normally. -pidfile /var/run/redis_6379.pid - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also the empty string can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile "" - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 16 - -# By default Redis shows an ASCII art logo only when started to log to the -# standard output and if the standard output is a TTY. Basically this means -# that normally a logo is displayed only in interactive sessions. -# -# However it is possible to force the pre-4.0 behavior and always show a -# ASCII art logo in startup logs by setting the following option to yes. -always-show-logo yes - -################################ SNAPSHOTTING ################################ -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving completely by commenting out all "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in a hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# disaster will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usual even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir "/data" - -################################# REPLICATION ################################# - -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. -# -# +------------------+ +---------------+ -# | Master | ---> | Replica | -# | (receive writes) | | (exact copy) | -# +------------------+ +---------------+ -# -# 1) Redis replication is asynchronous, but you can configure a master to -# stop accepting writes if it appears to be not connected with at least -# a given number of replicas. -# 2) Redis replicas are able to perform a partial resynchronization with the -# master if the replication link is lost for a relatively small amount of -# time. You may want to configure the replication backlog size (see the next -# sections of this file) with a sensible value depending on your needs. -# 3) Replication is automatic and does not need user intervention. After a -# network partition replicas automatically try to reconnect to masters -# and resynchronize with them. -# -# replicaof - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the replica to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the replica request. -# -# masterauth - -# When a replica loses its connection with the master, or when the replication -# is still in progress, the replica can act in two different ways: -# -# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if replica-serve-stale-data is set to 'no' the replica will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, -# SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, -# COMMAND, POST, HOST: and LATENCY. -# -replica-serve-stale-data yes - -# You can configure a replica instance to accept writes or not. Writing against -# a replica instance may be useful to store some ephemeral data (because data -# written on a replica will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default replicas are read-only. -# -# Note: read only replicas are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only replica exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve -# security of read only replicas using 'rename-command' to shadow all the -# administrative / dangerous commands. -replica-read-only yes - -# Replication SYNC strategy: disk or socket. -# -# ------------------------------------------------------- -# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY -# ------------------------------------------------------- -# -# New replicas and reconnecting replicas that are not able to continue the replication -# process just receiving differences, need to do what is called a "full -# synchronization". An RDB file is transmitted from the master to the replicas. -# The transmission can happen in two different ways: -# -# 1) Disk-backed: The Redis master creates a new process that writes the RDB -# file on disk. Later the file is transferred by the parent -# process to the replicas incrementally. -# 2) Diskless: The Redis master creates a new process that directly writes the -# RDB file to replica sockets, without touching the disk at all. -# -# With disk-backed replication, while the RDB file is generated, more replicas -# can be queued and served with the RDB file as soon as the current child producing -# the RDB file finishes its work. With diskless replication instead once -# the transfer starts, new replicas arriving will be queued and a new transfer -# will start when the current one terminates. -# -# When diskless replication is used, the master waits a configurable amount of -# time (in seconds) before starting the transfer in the hope that multiple replicas -# will arrive and the transfer can be parallelized. -# -# With slow disks and fast (large bandwidth) networks, diskless replication -# works better. -repl-diskless-sync no - -# When diskless replication is enabled, it is possible to configure the delay -# the server waits in order to spawn the child that transfers the RDB via socket -# to the replicas. -# -# This is important since once the transfer starts, it is not possible to serve -# new replicas arriving, that will be queued for the next RDB transfer, so the server -# waits a delay in order to let more replicas arrive. -# -# The delay is specified in seconds, and by default is 5 seconds. To disable -# it entirely just set it to 0 seconds and the transfer will start ASAP. -repl-diskless-sync-delay 5 - -# Replicas send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_replica_period option. The default value is 10 -# seconds. -# -# repl-ping-replica-period 10 - -# The following option sets the replication timeout for: -# -# 1) Bulk transfer I/O during SYNC, from the point of view of replica. -# 2) Master timeout from the point of view of replicas (data, pings). -# 3) Replica timeout from the point of view of masters (REPLCONF ACK pings). -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-replica-period otherwise a timeout will be detected -# every time there is low traffic between the master and the replica. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the replica socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to replicas. But this can add a delay for -# the data to appear on the replica side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the replica side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and replicas are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# Set the replication backlog size. The backlog is a buffer that accumulates -# replica data when replicas are disconnected for some time, so that when a replica -# wants to reconnect again, often a full resync is not needed, but a partial -# resync is enough, just passing the portion of data the replica missed while -# disconnected. -# -# The bigger the replication backlog, the longer the time the replica can be -# disconnected and later be able to perform a partial resynchronization. -# -# The backlog is only allocated once there is at least a replica connected. -# -# repl-backlog-size 1mb - -# After a master has no longer connected replicas for some time, the backlog -# will be freed. The following option configures the amount of seconds that -# need to elapse, starting from the time the last replica disconnected, for -# the backlog buffer to be freed. -# -# Note that replicas never free the backlog for timeout, since they may be -# promoted to masters later, and should be able to correctly "partially -# resynchronize" with the replicas: hence they should always accumulate backlog. -# -# A value of 0 means to never release the backlog. -# -# repl-backlog-ttl 3600 - -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a -# master if the master is no longer working correctly. -# -# A replica with a low priority number is considered better for promotion, so -# for instance if there are three replicas with priority 10, 100, 25 Sentinel will -# pick the one with priority 10, that is the lowest. -# -# However a special priority of 0 marks the replica as not able to perform the -# role of master, so a replica with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -replica-priority 100 - -# It is possible for a master to stop accepting writes if there are less than -# N replicas connected, having a lag less or equal than M seconds. -# -# The N replicas need to be in "online" state. -# -# The lag in seconds, that must be <= the specified value, is calculated from -# the last ping received from the replica, that is usually sent every second. -# -# This option does not GUARANTEE that N replicas will accept the write, but -# will limit the window of exposure for lost writes in case not enough replicas -# are available, to the specified number of seconds. -# -# For example to require at least 3 replicas with a lag <= 10 seconds use: -# -# min-replicas-to-write 3 -# min-replicas-max-lag 10 -# -# Setting one or the other to 0 disables the feature. -# -# By default min-replicas-to-write is set to 0 (feature disabled) and -# min-replicas-max-lag is set to 10. - -# A Redis master is able to list the address and port of the attached -# replicas in different ways. For example the "INFO replication" section -# offers this information, which is used, among other tools, by -# Redis Sentinel in order to discover replica instances. -# Another place where this info is available is in the output of the -# "ROLE" command of a master. -# -# The listed IP and address normally reported by a replica is obtained -# in the following way: -# -# IP: The address is auto detected by checking the peer address -# of the socket used by the replica to connect with the master. -# -# Port: The port is communicated by the replica during the replication -# handshake, and is normally the port that the replica is using to -# listen for connections. -# -# However when port forwarding or Network Address Translation (NAT) is -# used, the replica may be actually reachable via different IP and port -# pairs. The following two options can be used by a replica in order to -# report to its master a specific set of IP and port, so that both INFO -# and ROLE will report those values. -# -# There is no need to use both the options if you need to override just -# the port or the IP address. -# -# replica-announce-ip 5.5.5.5 -# replica-announce-port 1234 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to replicas may cause problems. - -################################### CLIENTS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -############################## MEMORY MANAGEMENT ################################ - -# Set a memory usage limit to the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# according to the eviction policy selected (see maxmemory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU or LFU cache, or to -# set a hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have replicas attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the replicas are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of replicas is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have replicas attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for replica -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> Evict using approximated LRU among the keys with an expire set. -# allkeys-lru -> Evict any key using approximated LRU. -# volatile-lfu -> Evict using approximated LFU among the keys with an expire set. -# allkeys-lfu -> Evict any key using approximated LFU. -# volatile-random -> Remove a random key among the ones with an expire set. -# allkeys-random -> Remove a random key, any key. -# volatile-ttl -> Remove the key with the nearest expire time (minor TTL) -# noeviction -> Don't evict anything, just return an error on write operations. -# -# LRU means Least Recently Used -# LFU means Least Frequently Used -# -# Both LRU, LFU and volatile-ttl are implemented using approximated -# randomized algorithms. -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are no suitable keys for eviction. -# -# At the date of writing these commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy noeviction - -# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can tune it for speed or -# accuracy. For default Redis will check five keys and pick the one that was -# used less recently, you can change the sample size using the following -# configuration directive. -# -# The default of 5 produces good enough results. 10 Approximates very closely -# true LRU but costs more CPU. 3 is faster but not very accurate. -# -# maxmemory-samples 5 - -# Starting from Redis 5, by default a replica will ignore its maxmemory setting -# (unless it is promoted to master after a failover or manually). It means -# that the eviction of keys will be just handled by the master, sending the -# DEL commands to the replica as keys evict in the master side. -# -# This behavior ensures that masters and replicas stay consistent, and is usually -# what you want, however if your replica is writable, or you want the replica to have -# a different memory setting, and you are sure all the writes performed to the -# replica are idempotent, then you may change this default (but be sure to understand -# what you are doing). -# -# Note that since the replica by default does not evict, it may end using more -# memory than the one set via maxmemory (there are certain buffers that may -# be larger on the replica, or data structures may sometimes take more memory and so -# forth). So make sure you monitor your replicas and make sure they have enough -# memory to never hit a real out-of-memory condition before the master hits -# the configured maxmemory setting. -# -# replica-ignore-maxmemory yes - -############################# LAZY FREEING #################################### - -# Redis has two primitives to delete keys. One is called DEL and is a blocking -# deletion of the object. It means that the server stops processing new commands -# in order to reclaim all the memory associated with an object in a synchronous -# way. If the key deleted is associated with a small object, the time needed -# in order to execute the DEL command is very small and comparable to most other -# O(1) or O(log_N) commands in Redis. However if the key is associated with an -# aggregated value containing millions of elements, the server can block for -# a long time (even seconds) in order to complete the operation. -# -# For the above reasons Redis also offers non blocking deletion primitives -# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and -# FLUSHDB commands, in order to reclaim memory in background. Those commands -# are executed in constant time. Another thread will incrementally free the -# object in the background as fast as possible. -# -# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. -# It's up to the design of the application to understand when it is a good -# idea to use one or the other. However the Redis server sometimes has to -# delete keys or flush the whole database as a side effect of other operations. -# Specifically Redis deletes objects independently of a user call in the -# following scenarios: -# -# 1) On eviction, because of the maxmemory and maxmemory policy configurations, -# in order to make room for new data, without going over the specified -# memory limit. -# 2) Because of expire: when a key with an associated time to live (see the -# EXPIRE command) must be deleted from memory. -# 3) Because of a side effect of a command that stores data on a key that may -# already exist. For example the RENAME command may delete the old key -# content when it is replaced with another one. Similarly SUNIONSTORE -# or SORT with STORE option may delete existing keys. The SET command -# itself removes any old content of the specified key in order to replace -# it with the specified string. -# 4) During replication, when a replica performs a full resynchronization with -# its master, the content of the whole database is removed in order to -# load the RDB file just transferred. -# -# In all the above cases the default is to delete objects in a blocking way, -# like if DEL was called. However you can configure each case specifically -# in order to instead release memory in a non-blocking way like if UNLINK -# was called, using the following configuration directives: - -lazyfree-lazy-eviction no -lazyfree-lazy-expire no -lazyfree-lazy-server-del no -replica-lazy-flush no - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") - -appendfilename "appendonly.aof" - -# The fsync() call tells the Operating System to actually write data on disk -# instead of waiting for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log. Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. - -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -# An AOF file may be found to be truncated at the end during the Redis -# startup process, when the AOF data gets loaded back into memory. -# This may happen when the system where Redis is running -# crashes, especially when an ext4 filesystem is mounted without the -# data=ordered option (however this can't happen when Redis itself -# crashes or aborts but the operating system still works correctly). -# -# Redis can either exit with an error when this happens, or load as much -# data as possible (the default now) and start if the AOF file is found -# to be truncated at the end. The following option controls this behavior. -# -# If aof-load-truncated is set to yes, a truncated AOF file is loaded and -# the Redis server starts emitting a log to inform the user of the event. -# Otherwise if the option is set to no, the server aborts with an error -# and refuses to start. When the option is set to no, the user requires -# to fix the AOF file using the "redis-check-aof" utility before to restart -# the server. -# -# Note that if the AOF file will be found to be corrupted in the middle -# the server will still exit with an error. This option only applies when -# Redis will try to read more data from the AOF file but not enough bytes -# will be found. -aof-load-truncated yes - -# When rewriting the AOF file, Redis is able to use an RDB preamble in the -# AOF file for faster rewrites and recoveries. When this option is turned -# on the rewritten AOF file is composed of two different stanzas: -# -# [RDB file][AOF tail] -# -# When loading Redis recognizes that the AOF file starts with the "REDIS" -# string and loads the prefixed RDB file, and continues loading the AOF -# tail. -aof-use-rdb-preamble yes - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceeds the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write command was -# already issued by the script but the user doesn't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################ REDIS CLUSTER ############################### - -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a -# cluster node enable the cluster support uncommenting the following: -# -cluster-enabled yes - -# Every cluster node has a cluster configuration file. This file is not -# intended to be edited by hand. It is created and updated by Redis nodes. -# Every Redis Cluster node requires a different cluster configuration file. -# Make sure that instances running in the same system do not have -# overlapping cluster configuration file names. -# -cluster-config-file nodes-6398.conf - -# Cluster node timeout is the amount of milliseconds a node must be unreachable -# for it to be considered in failure state. -# Most other internal time limits are multiple of the node timeout. -# -cluster-node-timeout 15000 - -# A replica of a failing master will avoid to start a failover if its data -# looks too old. -# -# There is no simple way for a replica to actually have an exact measure of -# its "data age", so the following two checks are performed: -# -# 1) If there are multiple replicas able to failover, they exchange messages -# in order to try to give an advantage to the replica with the best -# replication offset (more data from the master processed). -# Replicas will try to get their rank by offset, and apply to the start -# of the failover a delay proportional to their rank. -# -# 2) Every single replica computes the time of the last interaction with -# its master. This can be the last ping or command received (if the master -# is still in the "connected" state), or the time that elapsed since the -# disconnection with the master (if the replication link is currently down). -# If the last interaction is too old, the replica will not try to failover -# at all. -# -# The point "2" can be tuned by user. Specifically a replica will not perform -# the failover if, since the last interaction with the master, the time -# elapsed is greater than: -# -# (node-timeout * replica-validity-factor) + repl-ping-replica-period -# -# So for example if node-timeout is 30 seconds, and the replica-validity-factor -# is 10, and assuming a default repl-ping-replica-period of 10 seconds, the -# replica will not try to failover if it was not able to talk with the master -# for longer than 310 seconds. -# -# A large replica-validity-factor may allow replicas with too old data to failover -# a master, while a too small value may prevent the cluster from being able to -# elect a replica at all. -# -# For maximum availability, it is possible to set the replica-validity-factor -# to a value of 0, which means, that replicas will always try to failover the -# master regardless of the last time they interacted with the master. -# (However they'll always try to apply a delay proportional to their -# offset rank). -# -# Zero is the only value able to guarantee that when all the partitions heal -# the cluster will always be able to continue. -# -# cluster-replica-validity-factor 10 - -# Cluster replicas are able to migrate to orphaned masters, that are masters -# that are left without working replicas. This improves the cluster ability -# to resist to failures as otherwise an orphaned master can't be failed over -# in case of failure if it has no working replicas. -# -# Replicas migrate to orphaned masters only if there are still at least a -# given number of other working replicas for their old master. This number -# is the "migration barrier". A migration barrier of 1 means that a replica -# will migrate only if there is at least 1 other working replica for its master -# and so forth. It usually reflects the number of replicas you want for every -# master in your cluster. -# -# Default is 1 (replicas migrate only if their masters remain with at least -# one replica). To disable migration just set it to a very large value. -# A value of 0 can be set but is useful only for debugging and dangerous -# in production. -# -# cluster-migration-barrier 1 - -# By default Redis Cluster nodes stop accepting queries if they detect there -# is at least an hash slot uncovered (no available node is serving it). -# This way if the cluster is partially down (for example a range of hash slots -# are no longer covered) all the cluster becomes, eventually, unavailable. -# It automatically returns available as soon as all the slots are covered again. -# -# However sometimes you want the subset of the cluster which is working, -# to continue to accept queries for the part of the key space that is still -# covered. In order to do so, just set the cluster-require-full-coverage -# option to no. -# -# cluster-require-full-coverage yes - -# This option, when set to yes, prevents replicas from trying to failover its -# master during master failures. However the master can still perform a -# manual failover, if forced to do so. -# -# This is useful in different scenarios, especially in the case of multiple -# data center operations, where we want one side to never be promoted if not -# in the case of a total DC failure. -# -# cluster-replica-no-failover no - -# In order to setup your cluster make sure to read the documentation -# available at http://redis.io web site. - -########################## CLUSTER DOCKER/NAT support ######################## - -# In certain deployments, Redis Cluster nodes address discovery fails, because -# addresses are NAT-ted or because ports are forwarded (the typical case is -# Docker and other containers). -# -# In order to make Redis Cluster working in such environments, a static -# configuration where each node knows its public address is needed. The -# following two options are used for this scope, and are: -# -# * cluster-announce-ip -# * cluster-announce-port -# * cluster-announce-bus-port -# -# Each instruct the node about its address, client port, and cluster message -# bus port. The information is then published in the header of the bus packets -# so that other nodes will be able to correctly map the address of the node -# publishing the information. -# -# If the above options are not used, the normal Redis Cluster auto-detection -# will be used instead. -# -# Note that when remapped, the bus port may not be at the fixed offset of -# clients port + 10000, so you can specify any port and bus-port depending -# on how they get remapped. If the bus-port is not set, a fixed offset of -# 10000 will be used as usually. -# -# Example: -# -# cluster-announce-ip 10.1.1.5 -# cluster-announce-port 6379 -# cluster-announce-bus-port 6380 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -################################ LATENCY MONITOR ############################## - -# The Redis latency monitoring subsystem samples different operations -# at runtime in order to collect data related to possible sources of -# latency of a Redis instance. -# -# Via the LATENCY command this information is available to the user that can -# print graphs and obtain reports. -# -# The system only logs operations that were performed in a time equal or -# greater than the amount of milliseconds specified via the -# latency-monitor-threshold configuration directive. When its value is set -# to zero, the latency monitor is turned off. -# -# By default latency monitoring is disabled since it is mostly not needed -# if you don't have latency issues, and collecting data has a performance -# impact, that while very small, can be measured under big load. Latency -# monitoring can easily be enabled at runtime using the command -# "CONFIG SET latency-monitor-threshold " if needed. -latency-monitor-threshold 0 - -############################# EVENT NOTIFICATION ############################## - -# Redis can notify Pub/Sub clients about events happening in the key space. -# This feature is documented at http://redis.io/topics/notifications -# -# For instance if keyspace events notification is enabled, and a client -# performs a DEL operation on key "foo" stored in the Database 0, two -# messages will be published via Pub/Sub: -# -# PUBLISH __keyspace@0__:foo del -# PUBLISH __keyevent@0__:del foo -# -# It is possible to select the events that Redis will notify among a set -# of classes. Every class is identified by a single character: -# -# K Keyspace events, published with __keyspace@__ prefix. -# E Keyevent events, published with __keyevent@__ prefix. -# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... -# $ String commands -# l List commands -# s Set commands -# h Hash commands -# z Sorted set commands -# x Expired events (events generated every time a key expires) -# e Evicted events (events generated when a key is evicted for maxmemory) -# A Alias for g$lshzxe, so that the "AKE" string means all the events. -# -# The "notify-keyspace-events" takes as argument a string that is composed -# of zero or multiple characters. The empty string means that notifications -# are disabled. -# -# Example: to enable list and generic events, from the point of view of the -# event name, use: -# -# notify-keyspace-events Elg -# -# Example 2: to get the stream of the expired keys subscribing to channel -# name __keyevent@0__:expired use: -# -# notify-keyspace-events Ex -# -# By default all notifications are disabled because most users don't need -# this feature and the feature has some overhead. Note that if you don't -# specify at least one of K or E, no events will be delivered. -notify-keyspace-events "" - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Lists are also encoded in a special way to save a lot of space. -# The number of entries allowed per internal list node can be specified -# as a fixed maximum size or a maximum number of elements. -# For a fixed maximum size, use -5 through -1, meaning: -# -5: max size: 64 Kb <-- not recommended for normal workloads -# -4: max size: 32 Kb <-- not recommended -# -3: max size: 16 Kb <-- probably not recommended -# -2: max size: 8 Kb <-- good -# -1: max size: 4 Kb <-- good -# Positive numbers mean store up to _exactly_ that number of elements -# per list node. -# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), -# but if your use case is unique, adjust the settings as necessary. -list-max-ziplist-size -2 - -# Lists may also be compressed. -# Compress depth is the number of quicklist ziplist nodes from *each* side of -# the list to *exclude* from compression. The head and tail of the list -# are always uncompressed for fast push/pop operations. Settings are: -# 0: disable all list compression -# 1: depth 1 means "don't start compressing until after 1 node into the list, -# going from either the head or tail" -# So: [head]->node->node->...->node->[tail] -# [head], [tail] will always be uncompressed; inner nodes will compress. -# 2: [head]->[next]->node->node->...->node->[prev]->[tail] -# 2 here means: don't compress head or head->next or tail->prev or tail, -# but compress all nodes between them. -# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] -# etc. -list-compress-depth 0 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happen to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# HyperLogLog sparse representation bytes limit. The limit includes the -# 16 bytes header. When an HyperLogLog using the sparse representation crosses -# this limit, it is converted into the dense representation. -# -# A value greater than 16000 is totally useless, since at that point the -# dense representation is more memory efficient. -# -# The suggested value is ~ 3000 in order to have the benefits of -# the space efficient encoding without slowing down too much PFADD, -# which is O(N) with the sparse encoding. The value can be raised to -# ~ 10000 when CPU is not a concern, but space is, and the data set is -# composed of many HyperLogLogs with cardinality in the 0 - 15000 range. -hll-sparse-max-bytes 3000 - -# Streams macro node max size / items. The stream data structure is a radix -# tree of big nodes that encode multiple items inside. Using this configuration -# it is possible to configure how big a single node can be in bytes, and the -# maximum number of items it may contain before switching to a new node when -# appending new stream entries. If any of the following settings are set to -# zero, the limit is ignored, so for instance it is possible to set just a -# max entires limit by setting max-bytes to 0 and max-entries to the desired -# value. -stream-node-max-bytes 4096 -stream-node-max-entries 100 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into a hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# actively rehash the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply from time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients including MONITOR clients -# replica -> replica clients -# pubsub -> clients subscribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and replica clients, since -# subscribers and replicas receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit replica 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Client query buffers accumulate new commands. They are limited to a fixed -# amount by default in order to avoid that a protocol desynchronization (for -# instance due to a bug in the client) will lead to unbound memory usage in -# the query buffer. However you can configure it here if you have very special -# needs, such us huge multi/exec requests or alike. -# -# client-query-buffer-limit 1gb - -# In the Redis protocol, bulk requests, that are, elements representing single -# strings, are normally limited ot 512 mb. However you can change this limit -# here. -# -# proto-max-bulk-len 512mb - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeout, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are performed with the same frequency, but Redis checks for -# tasks to perform according to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -# Normally it is useful to have an HZ value which is proportional to the -# number of clients connected. This is useful in order, for instance, to -# avoid too many clients are processed for each background task invocation -# in order to avoid latency spikes. -# -# Since the default HZ value by default is conservatively set to 10, Redis -# offers, and enables by default, the ability to use an adaptive HZ value -# which will temporary raise when there are many connected clients. -# -# When dynamic HZ is enabled, the actual configured HZ will be used as -# as a baseline, but multiples of the configured HZ value will be actually -# used as needed once more clients are connected. In this way an idle -# instance will use very little CPU time while a busy instance will be -# more responsive. -dynamic-hz yes - -# When a child rewrites the AOF file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -aof-rewrite-incremental-fsync yes - -# When redis saves RDB file, if the following option is enabled -# the file will be fsync-ed every 32 MB of data generated. This is useful -# in order to commit the file to the disk more incrementally and avoid -# big latency spikes. -rdb-save-incremental-fsync yes - -# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good -# idea to start with the default settings and only change them after investigating -# how to improve the performances and how the keys LFU change over time, which -# is possible to inspect via the OBJECT FREQ command. -# -# There are two tunable parameters in the Redis LFU implementation: the -# counter logarithm factor and the counter decay time. It is important to -# understand what the two parameters mean before changing them. -# -# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis -# uses a probabilistic increment with logarithmic behavior. Given the value -# of the old counter, when a key is accessed, the counter is incremented in -# this way: -# -# 1. A random number R between 0 and 1 is extracted. -# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1). -# 3. The counter is incremented only if R < P. -# -# The default lfu-log-factor is 10. This is a table of how the frequency -# counter changes with a different number of accesses with different -# logarithmic factors: -# -# +--------+------------+------------+------------+------------+------------+ -# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits | -# +--------+------------+------------+------------+------------+------------+ -# | 0 | 104 | 255 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 1 | 18 | 49 | 255 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 10 | 10 | 18 | 142 | 255 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# | 100 | 8 | 11 | 49 | 143 | 255 | -# +--------+------------+------------+------------+------------+------------+ -# -# NOTE: The above table was obtained by running the following commands: -# -# redis-benchmark -n 1000000 incr foo -# redis-cli object freq foo -# -# NOTE 2: The counter initial value is 5 in order to give new objects a chance -# to accumulate hits. -# -# The counter decay time is the time, in minutes, that must elapse in order -# for the key counter to be divided by two (or decremented if it has a value -# less <= 10). -# -# The default value for the lfu-decay-time is 1. A Special value of 0 means to -# decay the counter every time it happens to be scanned. -# -# lfu-log-factor 10 -# lfu-decay-time 1 - -########################### ACTIVE DEFRAGMENTATION ####################### -# -# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested -# even in production and manually tested by multiple engineers for some -# time. -# -# What is active defragmentation? -# ------------------------------- -# -# Active (online) defragmentation allows a Redis server to compact the -# spaces left between small allocations and deallocations of data in memory, -# thus allowing to reclaim back memory. -# -# Fragmentation is a natural process that happens with every allocator (but -# less so with Jemalloc, fortunately) and certain workloads. Normally a server -# restart is needed in order to lower the fragmentation, or at least to flush -# away all the data and create it again. However thanks to this feature -# implemented by Oran Agra for Redis 4.0 this process can happen at runtime -# in an "hot" way, while the server is running. -# -# Basically when the fragmentation is over a certain level (see the -# configuration options below) Redis will start to create new copies of the -# values in contiguous memory regions by exploiting certain specific Jemalloc -# features (in order to understand if an allocation is causing fragmentation -# and to allocate it in a better place), and at the same time, will release the -# old copies of the data. This process, repeated incrementally for all the keys -# will cause the fragmentation to drop back to normal values. -# -# Important things to understand: -# -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of Redis. -# This is the default with Linux builds. -# -# 2. You never need to enable this feature if you don't have fragmentation -# issues. -# -# 3. Once you experience fragmentation, you can enable this feature when -# needed with the command "CONFIG SET activedefrag yes". -# -# The configuration parameters are able to fine tune the behavior of the -# defragmentation process. If you are not sure about what they mean it is -# a good idea to leave the defaults untouched. - -# Enabled active defragmentation -# activedefrag yes - -# Minimum amount of fragmentation waste to start active defrag -# active-defrag-ignore-bytes 100mb - -# Minimum percentage of fragmentation to start active defrag -# active-defrag-threshold-lower 10 - -# Maximum percentage of fragmentation at which we use maximum effort -# active-defrag-threshold-upper 100 - -# Minimal effort for defrag in CPU percentage -# active-defrag-cycle-min 5 - -# Maximal effort for defrag in CPU percentage -# active-defrag-cycle-max 75 - -# Maximum number of set/hash/zset/list fields that will be processed from -# the main dictionary scan -# active-defrag-max-scan-fields 1000 - diff --git a/document/redis-cluster/config/redis.sh b/document/redis-cluster/config/redis.sh deleted file mode 100644 index e2261206..00000000 --- a/document/redis-cluster/config/redis.sh +++ /dev/null @@ -1 +0,0 @@ -redis-server /config/nodes-${PORT}.conf \ No newline at end of file diff --git a/document/redis-cluster/docker-compose.yml b/document/redis-cluster/docker-compose.yml deleted file mode 100644 index 9d47c5ab..00000000 --- a/document/redis-cluster/docker-compose.yml +++ /dev/null @@ -1,110 +0,0 @@ -version: "3" -services: - redis-master1: - image: redis:5.0 # 基础镜像 - container_name: redis-master1 # 容器名称 - working_dir: /config # 切换工作目录 - environment: # 环境变量 - - PORT=6391 # 会使用config/nodes-${PORT}.conf这个配置文件 - ports: # 映射端口,对外提供服务 - - 6391:6391 # redis的服务端口 - - 16391:16391 # redis集群监控端口 - stdin_open: true # 标准输入打开 - tty: true # 后台运行不退出 - network_mode: host # 使用host模式 - privileged: true # 拥有容器内命令执行的权限 - volumes: - - /mydata/redis-cluster/config:/config #配置文件目录映射到宿主机 - entrypoint: # 设置服务默认的启动程序 - - /bin/bash - - redis.sh - redis-master2: - image: redis:5.0 - working_dir: /config - container_name: redis-master2 - environment: - - PORT=6392 - ports: - - 6392:6392 - - 16392:16392 - stdin_open: true - network_mode: host - tty: true - privileged: true - volumes: - - /mydata/redis-cluster/config:/config - entrypoint: - - /bin/bash - - redis.sh - redis-master3: - image: redis:5.0 - container_name: redis-master3 - working_dir: /config - environment: - - PORT=6393 - ports: - - 6393:6393 - - 16393:16393 - stdin_open: true - network_mode: host - tty: true - privileged: true - volumes: - - /mydata/redis-cluster/config:/config - entrypoint: - - /bin/bash - - redis.sh - redis-slave1: - image: redis:5.0 - container_name: redis-slave1 - working_dir: /config - environment: - - PORT=6394 - ports: - - 6394:6394 - - 16394:16394 - stdin_open: true - network_mode: host - tty: true - privileged: true - volumes: - - /mydata/redis-cluster/config:/config - entrypoint: - - /bin/bash - - redis.sh - redis-slave2: - image: redis:5.0 - working_dir: /config - container_name: redis-slave2 - environment: - - PORT=6395 - ports: - - 6395:6395 - - 16395:16395 - stdin_open: true - network_mode: host - tty: true - privileged: true - volumes: - - /mydata/redis-cluster/config:/config - entrypoint: - - /bin/bash - - redis.sh - redis-slave3: - image: redis:5.0 - container_name: redis-slave3 - working_dir: /config - environment: - - PORT=6396 - ports: - - 6396:6396 - - 16396:16396 - stdin_open: true - network_mode: host - tty: true - privileged: true - volumes: - - /mydata/redis-cluster/config:/config - entrypoint: - - /bin/bash - - redis.sh diff --git a/document/sql/mall.sql b/document/sql/mall.sql deleted file mode 100644 index ec1a3af9..00000000 --- a/document/sql/mall.sql +++ /dev/null @@ -1,3257 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : localhost - Source Server Type : MySQL - Source Server Version : 50719 - Source Host : localhost:3306 - Source Schema : mall - - Target Server Type : MySQL - Target Server Version : 50719 - File Encoding : 65001 - - Date: 11/05/2023 15:48:15 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for cms_help --- ---------------------------- -DROP TABLE IF EXISTS `cms_help`; -CREATE TABLE `cms_help` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `category_id` bigint(20) NULL DEFAULT NULL, - `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `show_status` int(1) NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `read_count` int(1) NULL DEFAULT NULL, - `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '帮助表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_help --- ---------------------------- - --- ---------------------------- --- Table structure for cms_help_category --- ---------------------------- -DROP TABLE IF EXISTS `cms_help_category`; -CREATE TABLE `cms_help_category` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类图标', - `help_count` int(11) NULL DEFAULT NULL COMMENT '专题数量', - `show_status` int(2) NULL DEFAULT NULL, - `sort` int(11) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '帮助分类表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_help_category --- ---------------------------- - --- ---------------------------- --- Table structure for cms_member_report --- ---------------------------- -DROP TABLE IF EXISTS `cms_member_report`; -CREATE TABLE `cms_member_report` ( - `id` bigint(20) NULL DEFAULT NULL, - `report_type` int(1) NULL DEFAULT NULL COMMENT '举报类型:0->商品评价;1->话题内容;2->用户评论', - `report_member_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '举报人', - `create_time` datetime NULL DEFAULT NULL, - `report_object` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `report_status` int(1) NULL DEFAULT NULL COMMENT '举报状态:0->未处理;1->已处理', - `handle_status` int(1) NULL DEFAULT NULL COMMENT '处理结果:0->无效;1->有效;2->恶意', - `note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL -) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户举报表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_member_report --- ---------------------------- - --- ---------------------------- --- Table structure for cms_prefrence_area --- ---------------------------- -DROP TABLE IF EXISTS `cms_prefrence_area`; -CREATE TABLE `cms_prefrence_area` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `sub_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `pic` varbinary(500) NULL DEFAULT NULL COMMENT '展示图片', - `sort` int(11) NULL DEFAULT NULL, - `show_status` int(1) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优选专区' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_prefrence_area --- ---------------------------- -INSERT INTO `cms_prefrence_area` VALUES (1, '让音质更出众', '音质不打折 完美现场感', NULL, NULL, 1); -INSERT INTO `cms_prefrence_area` VALUES (2, '让音质更出众22', '让音质更出众22', NULL, NULL, NULL); -INSERT INTO `cms_prefrence_area` VALUES (3, '让音质更出众33', NULL, NULL, NULL, NULL); -INSERT INTO `cms_prefrence_area` VALUES (4, '让音质更出众44', NULL, NULL, NULL, NULL); - --- ---------------------------- --- Table structure for cms_prefrence_area_product_relation --- ---------------------------- -DROP TABLE IF EXISTS `cms_prefrence_area_product_relation`; -CREATE TABLE `cms_prefrence_area_product_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `prefrence_area_id` bigint(20) NULL DEFAULT NULL, - `product_id` bigint(20) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优选专区和产品关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_prefrence_area_product_relation --- ---------------------------- -INSERT INTO `cms_prefrence_area_product_relation` VALUES (1, 1, 12); -INSERT INTO `cms_prefrence_area_product_relation` VALUES (2, 1, 13); -INSERT INTO `cms_prefrence_area_product_relation` VALUES (3, 1, 14); -INSERT INTO `cms_prefrence_area_product_relation` VALUES (4, 1, 18); -INSERT INTO `cms_prefrence_area_product_relation` VALUES (5, 1, 7); -INSERT INTO `cms_prefrence_area_product_relation` VALUES (6, 2, 7); -INSERT INTO `cms_prefrence_area_product_relation` VALUES (7, 1, 22); -INSERT INTO `cms_prefrence_area_product_relation` VALUES (24, 1, 23); - --- ---------------------------- --- Table structure for cms_subject --- ---------------------------- -DROP TABLE IF EXISTS `cms_subject`; -CREATE TABLE `cms_subject` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `category_id` bigint(20) NULL DEFAULT NULL, - `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `pic` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专题主图', - `product_count` int(11) NULL DEFAULT NULL COMMENT '关联产品数量', - `recommend_status` int(1) NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `collect_count` int(11) NULL DEFAULT NULL, - `read_count` int(11) NULL DEFAULT NULL, - `comment_count` int(11) NULL DEFAULT NULL, - `album_pics` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '画册图片用逗号分割', - `description` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `show_status` int(1) NULL DEFAULT NULL COMMENT '显示状态:0->不显示;1->显示', - `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL, - `forward_count` int(11) NULL DEFAULT NULL COMMENT '转发数', - `category_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专题分类名称', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_subject --- ---------------------------- -INSERT INTO `cms_subject` VALUES (1, 1, 'polo衬衫的也时尚', NULL, NULL, NULL, '2018-11-11 13:26:55', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '服装专题'); -INSERT INTO `cms_subject` VALUES (2, 2, '大牌手机低价秒', NULL, NULL, NULL, '2018-11-12 13:27:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '手机专题'); -INSERT INTO `cms_subject` VALUES (3, 2, '晓龙845新品上市', NULL, NULL, NULL, '2018-11-13 13:27:05', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '手机专题'); -INSERT INTO `cms_subject` VALUES (4, 1, '夏天应该穿什么', NULL, NULL, NULL, '2018-11-01 13:27:09', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '服装专题'); -INSERT INTO `cms_subject` VALUES (5, 1, '夏季精选', NULL, NULL, NULL, '2018-11-06 13:27:18', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '服装专题'); -INSERT INTO `cms_subject` VALUES (6, 2, '品牌手机降价', NULL, NULL, NULL, '2018-11-07 13:27:21', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '手机专题'); - --- ---------------------------- --- Table structure for cms_subject_category --- ---------------------------- -DROP TABLE IF EXISTS `cms_subject_category`; -CREATE TABLE `cms_subject_category` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类图标', - `subject_count` int(11) NULL DEFAULT NULL COMMENT '专题数量', - `show_status` int(2) NULL DEFAULT NULL, - `sort` int(11) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题分类表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_subject_category --- ---------------------------- -INSERT INTO `cms_subject_category` VALUES (1, '服装专题', NULL, NULL, NULL, NULL); -INSERT INTO `cms_subject_category` VALUES (2, '手机专题', NULL, NULL, NULL, NULL); - --- ---------------------------- --- Table structure for cms_subject_comment --- ---------------------------- -DROP TABLE IF EXISTS `cms_subject_comment`; -CREATE TABLE `cms_subject_comment` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `subject_id` bigint(20) NULL DEFAULT NULL, - `member_nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `member_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `content` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `show_status` int(1) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题评论表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_subject_comment --- ---------------------------- - --- ---------------------------- --- Table structure for cms_subject_product_relation --- ---------------------------- -DROP TABLE IF EXISTS `cms_subject_product_relation`; -CREATE TABLE `cms_subject_product_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `subject_id` bigint(20) NULL DEFAULT NULL, - `product_id` bigint(20) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 71 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题商品关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_subject_product_relation --- ---------------------------- -INSERT INTO `cms_subject_product_relation` VALUES (1, 1, 12); -INSERT INTO `cms_subject_product_relation` VALUES (2, 1, 13); -INSERT INTO `cms_subject_product_relation` VALUES (3, 1, 14); -INSERT INTO `cms_subject_product_relation` VALUES (4, 1, 18); -INSERT INTO `cms_subject_product_relation` VALUES (5, 1, 7); -INSERT INTO `cms_subject_product_relation` VALUES (6, 2, 7); -INSERT INTO `cms_subject_product_relation` VALUES (7, 1, 22); -INSERT INTO `cms_subject_product_relation` VALUES (29, 1, 23); -INSERT INTO `cms_subject_product_relation` VALUES (30, 4, 23); -INSERT INTO `cms_subject_product_relation` VALUES (31, 5, 23); -INSERT INTO `cms_subject_product_relation` VALUES (68, 2, 26); -INSERT INTO `cms_subject_product_relation` VALUES (69, 3, 26); -INSERT INTO `cms_subject_product_relation` VALUES (70, 6, 26); - --- ---------------------------- --- Table structure for cms_topic --- ---------------------------- -DROP TABLE IF EXISTS `cms_topic`; -CREATE TABLE `cms_topic` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `category_id` bigint(20) NULL DEFAULT NULL, - `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `start_time` datetime NULL DEFAULT NULL, - `end_time` datetime NULL DEFAULT NULL, - `attend_count` int(11) NULL DEFAULT NULL COMMENT '参与人数', - `attention_count` int(11) NULL DEFAULT NULL COMMENT '关注人数', - `read_count` int(11) NULL DEFAULT NULL, - `award_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '奖品名称', - `attend_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参与方式', - `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '话题内容', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '话题表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_topic --- ---------------------------- - --- ---------------------------- --- Table structure for cms_topic_category --- ---------------------------- -DROP TABLE IF EXISTS `cms_topic_category`; -CREATE TABLE `cms_topic_category` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类图标', - `subject_count` int(11) NULL DEFAULT NULL COMMENT '专题数量', - `show_status` int(2) NULL DEFAULT NULL, - `sort` int(11) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '话题分类表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_topic_category --- ---------------------------- - --- ---------------------------- --- Table structure for cms_topic_comment --- ---------------------------- -DROP TABLE IF EXISTS `cms_topic_comment`; -CREATE TABLE `cms_topic_comment` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `topic_id` bigint(20) NULL DEFAULT NULL, - `member_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `content` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `show_status` int(1) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题评论表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of cms_topic_comment --- ---------------------------- - --- ---------------------------- --- Table structure for oms_cart_item --- ---------------------------- -DROP TABLE IF EXISTS `oms_cart_item`; -CREATE TABLE `oms_cart_item` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `product_sku_id` bigint(20) NULL DEFAULT NULL, - `member_id` bigint(20) NULL DEFAULT NULL, - `quantity` int(11) NULL DEFAULT NULL COMMENT '购买数量', - `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '添加到购物车的价格', - `product_pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品主图', - `product_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称', - `product_sub_title` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品副标题(卖点)', - `product_sku_code` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品sku条码', - `member_nickname` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会员昵称', - `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间', - `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间', - `delete_status` int(1) NULL DEFAULT 0 COMMENT '是否删除', - `product_category_id` bigint(20) NULL DEFAULT NULL COMMENT '商品分类', - `product_brand` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_sn` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_attr` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品销售属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 115 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '购物车表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of oms_cart_item --- ---------------------------- -INSERT INTO `oms_cart_item` VALUES (12, 26, 90, 1, 1, 3788.00, NULL, '华为 HUAWEI P20', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2018-08-27 16:53:44', NULL, 1, 19, NULL, NULL, NULL); -INSERT INTO `oms_cart_item` VALUES (13, 27, 98, 1, 3, 2699.00, NULL, '小米8', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2018-08-27 17:11:53', NULL, 1, 19, NULL, NULL, NULL); -INSERT INTO `oms_cart_item` VALUES (14, 28, 102, 1, 1, 649.00, NULL, '红米5A', '8天超长待机,137g轻巧机身,高通骁龙处理器小米6X低至1299,点击抢购', '201808270028001', 'windir', '2018-08-27 17:18:02', NULL, 1, 19, NULL, NULL, NULL); -INSERT INTO `oms_cart_item` VALUES (15, 28, 103, 1, 1, 699.00, NULL, '红米5A', '8天超长待机,137g轻巧机身,高通骁龙处理器小米6X低至1299,点击抢购', '201808270028001', 'windir', '2018-08-28 10:22:45', NULL, 1, 19, NULL, NULL, NULL); -INSERT INTO `oms_cart_item` VALUES (16, 29, 106, 1, 1, 5499.00, NULL, 'Apple iPhone 8 Plus', '【限时限量抢购】Apple产品年中狂欢节,好物尽享,美在智慧!速来 >> 勾选[保障服务][原厂保2年],获得AppleCare+全方位服务计划,原厂延保售后无忧。', '201808270029001', 'windir', '2018-08-28 10:50:50', NULL, 1, 19, NULL, NULL, NULL); -INSERT INTO `oms_cart_item` VALUES (19, 36, 163, 1, 3, 100.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '202002210036001', 'windir', '2020-02-25 15:51:59', NULL, 1, 29, 'NIKE', '6799345', '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `oms_cart_item` VALUES (20, 36, 164, 1, 2, 120.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '202002210036001', 'windir', '2020-02-25 15:54:23', NULL, 1, 29, 'NIKE', '6799345', '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `oms_cart_item` VALUES (21, 36, 164, 1, 2, 120.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '202002210036001', 'windir', '2020-02-25 16:49:53', NULL, 1, 29, 'NIKE', '6799345', '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `oms_cart_item` VALUES (22, 26, 110, 1, 3, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-04 15:34:24', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (23, 27, 98, 1, 7, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-04 15:35:43', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (24, 26, 110, 1, 4, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-04 16:58:17', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (25, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-04 16:58:23', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (26, 28, 102, 1, 4, 649.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '8天超长待机,137g轻巧机身,高通骁龙处理器小米6X低至1299,点击抢购', '201808270028001', 'windir', '2020-05-04 16:58:26', NULL, 1, 19, '小米', '7437789', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (27, 29, 106, 1, 1, 4999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', '【限时限量抢购】Apple产品年中狂欢节,好物尽享,美在智慧!速来 >> 勾选[保障服务][原厂保2年],获得AppleCare+全方位服务计划,原厂延保售后无忧。', '201808270029001', 'windir', '2020-05-04 16:58:29', NULL, 1, 19, '苹果', '7437799', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (28, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-04 17:07:20', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (29, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-04 17:07:23', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (30, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-04 17:08:14', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (31, 29, 106, 1, 1, 4999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', '【限时限量抢购】Apple产品年中狂欢节,好物尽享,美在智慧!速来 >> 勾选[保障服务][原厂保2年],获得AppleCare+全方位服务计划,原厂延保售后无忧。', '201808270029001', 'windir', '2020-05-04 17:09:56', NULL, 1, 19, '苹果', '7437799', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (32, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-04 17:13:50', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (33, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-04 17:16:15', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (34, 36, 164, 1, 1, 120.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '202002210036002', 'windir', '2020-05-04 17:19:20', NULL, 1, 29, 'NIKE', '6799345', '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `oms_cart_item` VALUES (35, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-05 10:41:39', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (36, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-05 10:41:55', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (37, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-05 10:42:57', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (38, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-05 14:29:28', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (39, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-05 14:32:52', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (40, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-05 14:33:20', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (41, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-05 14:49:13', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (42, 26, 111, 1, 1, 3999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026002', 'windir', '2020-05-05 15:26:05', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (43, 28, 102, 1, 1, 649.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '8天超长待机,137g轻巧机身,高通骁龙处理器小米6X低至1299,点击抢购', '201808270028001', 'windir', '2020-05-16 15:16:04', NULL, 1, 19, '小米', '7437789', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (44, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-16 15:18:00', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (45, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 15:00:16', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (46, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-17 15:00:22', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (47, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 15:14:14', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (48, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 15:20:03', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (49, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 15:21:54', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (50, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 16:07:22', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (51, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-17 16:07:26', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (52, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 19:33:36', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (53, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-17 19:33:39', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (54, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 19:39:07', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (55, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 19:41:26', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (56, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-18 16:50:00', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (57, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-18 20:22:04', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (58, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-18 20:22:08', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (59, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-23 16:21:13', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (60, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-05-23 17:01:28', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (61, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-24 09:36:50', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (62, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-24 09:44:39', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (63, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-06-07 17:01:48', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (64, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-06-14 15:24:40', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (65, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-06-21 14:27:13', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (66, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-06-21 15:12:14', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (67, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-06-21 15:12:53', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (68, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-06-21 15:15:10', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (69, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2020-06-27 10:27:48', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (70, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '201808270027001', 'windir', '2022-10-28 14:50:46', NULL, 1, 19, '小米', '7437788', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (71, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 紫色 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '202210280037001', 'windir', '2022-10-28 15:27:32', NULL, 1, 19, '苹果', '100038005189', '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (72, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'windir', '2022-11-09 15:14:46', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (73, 38, 213, 1, 1, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款(64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A )', '【11.11大爱超大爱】iPad9代限量抢购,价格优惠,更享以旧换新至高补贴325元!!快来抢购吧!! ', '202210280038001', 'windir', '2022-11-09 15:25:28', NULL, 1, 53, '苹果', '100044025833', '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `oms_cart_item` VALUES (74, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '202210280037001', 'windir', '2022-11-09 15:26:04', NULL, 1, 19, '苹果', '100038005189', '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (75, 45, 239, 1, 1, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄 3200万前置索尼镜头 5G手机', '【11.11提前购机享价保,好货不用等,系统申请一键价保补差!】【Reno8Pro爆款优惠】 ', '202211080045001', 'windir', '2022-11-09 16:16:23', NULL, 1, 19, 'OPPO', '10052147850350', '[{\"key\":\"颜色\",\"value\":\"鸢尾紫\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (76, 45, 239, 1, 1, 2299.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄 3200万前置索尼镜头 5G手机', '【11.11提前购机享价保,好货不用等,系统申请一键价保补差!】【Reno8Pro爆款优惠】 ', '202211080045001', 'windir', '2022-11-09 16:18:36', NULL, 1, 19, 'OPPO', '10052147850350', '[{\"key\":\"颜色\",\"value\":\"鸢尾紫\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (77, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量 墨羽 12GB+256GB 5G智能手机 小米 红米', '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'windir', '2022-11-10 15:19:36', NULL, 1, 19, '小米', '100035246702', '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (78, 37, 201, 1, 2, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '202210280037001', 'windir', '2022-11-10 15:19:44', NULL, 1, 19, '苹果', '100038005189', '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (79, 38, 213, 1, 1, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款(64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A )', '【11.11大爱超大爱】iPad9代限量抢购,价格优惠,更享以旧换新至高补贴325元!!快来抢购吧!! ', '202210280038001', 'windir', '2022-11-11 15:37:40', NULL, 1, 53, '苹果', '100044025833', '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `oms_cart_item` VALUES (80, 38, 213, 1, 1, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款(64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A )', '【11.11大爱超大爱】iPad9代限量抢购,价格优惠,更享以旧换新至高补贴325元!!快来抢购吧!! ', '202210280038001', 'windir', '2022-11-11 15:38:12', NULL, 1, 53, '苹果', '100044025833', '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `oms_cart_item` VALUES (81, 38, 213, 1, 3, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款(64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A )', '【11.11大爱超大爱】iPad9代限量抢购,价格优惠,更享以旧换新至高补贴325元!!快来抢购吧!! ', '202210280038001', 'windir', '2022-11-11 15:38:22', NULL, 1, 53, '苹果', '100044025833', '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `oms_cart_item` VALUES (82, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'windir', '2022-11-11 16:07:23', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (83, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'windir', '2022-11-11 16:13:11', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (84, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '202210280037001', 'windir', '2022-11-11 16:15:05', NULL, 1, 19, '苹果', '100038005189', '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (85, 28, 102, 1, 1, 649.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '8天超长待机,137g轻巧机身,高通骁龙处理器小米6X低至1299,点击抢购', '201808270028001', 'windir', '2022-11-11 16:21:05', NULL, 1, 19, '小米', '7437789', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (86, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'windir', '2022-11-16 10:22:47', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (87, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'windir', '2022-11-16 10:22:51', NULL, 1, 19, '小米', '100035246702', '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (88, 39, 217, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '【双十一大促来袭】指定型号至高优惠1000,以旧换新至高补贴1000元,晒单赢好礼', '202210280039001', 'windir', '2022-11-16 10:22:54', NULL, 1, 54, '小米', '100023207945', '[{\"key\":\"颜色\",\"value\":\"新小米Pro 14英寸 2.8K屏\"},{\"key\":\"版本\",\"value\":\"R7 16G 512\"}]'); -INSERT INTO `oms_cart_item` VALUES (89, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '202210280037001', 'windir', '2022-11-16 10:23:16', NULL, 1, 19, '苹果', '100038005189', '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (90, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'test', '2022-12-21 15:49:00', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (91, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '202210280037001', 'test', '2022-12-21 15:49:42', NULL, 1, 19, '苹果', '100038005189', '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (92, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'test', '2022-12-21 15:49:53', NULL, 1, 19, '小米', '100035246702', '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (93, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'test', '2022-12-21 15:51:03', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (94, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'test', '2022-12-21 15:51:28', NULL, 1, 19, '小米', '100035246702', '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (95, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'test', '2022-12-21 16:45:16', NULL, 1, 19, '小米', '100035246702', '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (96, 40, 221, 1, 2, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'test', '2022-12-21 16:46:41', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (97, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'test', '2022-12-21 16:50:10', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (98, 40, 221, 1, 2, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'test', '2022-12-23 09:55:11', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (99, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'test', '2023-01-10 15:39:03', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (100, 26, 111, 1, 1, 3899.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026002', 'test', '2023-01-10 16:58:08', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_cart_item` VALUES (101, 26, 110, 1, 1, 3699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'test', '2023-01-10 17:10:26', NULL, 1, 19, '华为', '6946605', '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_cart_item` VALUES (102, 40, 221, 11, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'member', '2023-05-11 15:24:33', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (103, 41, 225, 11, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'member', '2023-05-11 15:24:37', NULL, 1, 19, '小米', '100035246702', '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (104, 38, 213, 11, 1, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款', '【11.11大爱超大爱】iPad9代限量抢购,价格优惠,更享以旧换新至高补贴325元!!快来抢购吧!! ', '202210280038001', 'member', '2023-05-11 15:30:32', NULL, 1, 53, '苹果', '100044025833', '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `oms_cart_item` VALUES (105, 39, 217, 11, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '【双十一大促来袭】指定型号至高优惠1000,以旧换新至高补贴1000元,晒单赢好礼', '202210280039001', 'member', '2023-05-11 15:31:38', NULL, 1, 54, '小米', '100023207945', '[{\"key\":\"颜色\",\"value\":\"新小米Pro 14英寸 2.8K屏\"},{\"key\":\"版本\",\"value\":\"R7 16G 512\"}]'); -INSERT INTO `oms_cart_item` VALUES (106, 44, 235, 11, 1, 369.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', '三星(SAMSUNG)500GB SSD固态硬盘 M.2接口(NVMe协议)', '【满血无缓存!进店抽百元E卡,部分型号白条三期免息】兼具速度与可靠性!读速高达3500MB/s,全功率模式!点击 ', '202211080044001', 'member', '2023-05-11 15:32:16', NULL, 1, 55, '三星', '100018768480', '[{\"key\":\"颜色\",\"value\":\"新品980|NVMe PCIe3.0*4\"},{\"key\":\"版本\",\"value\":\"512GB\"}]'); -INSERT INTO `oms_cart_item` VALUES (107, 42, 229, 11, 1, 4999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息', '【华为Mate50新品上市】内置66W华为充电套装,超光变XMAGE影像,北斗卫星消息,鸿蒙操作系统3.0!立即抢购!华为新品可持续计划,猛戳》 ', '202211040042001', 'member', '2023-05-11 15:32:44', NULL, 1, 19, '华为', '100035295081', '[{\"key\":\"颜色\",\"value\":\"曜金黑\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (108, 37, 201, 11, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '202210280037001', 'member', '2023-05-11 15:34:32', NULL, 1, 19, '苹果', '100038005189', '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (109, 40, 221, 11, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'member', '2023-05-11 15:35:02', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (110, 41, 225, 11, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'member', '2023-05-11 15:35:21', NULL, 1, 19, '小米', '100035246702', '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (111, 40, 221, 11, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'member', '2023-05-11 15:36:57', NULL, 1, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (112, 39, 217, 11, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '【双十一大促来袭】指定型号至高优惠1000,以旧换新至高补贴1000元,晒单赢好礼', '202210280039001', 'member', '2023-05-11 15:37:04', NULL, 1, 54, '小米', '100023207945', '[{\"key\":\"颜色\",\"value\":\"新小米Pro 14英寸 2.8K屏\"},{\"key\":\"版本\",\"value\":\"R7 16G 512\"}]'); -INSERT INTO `oms_cart_item` VALUES (113, 40, 221, 11, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '202211040040001', 'member', '2023-05-11 15:37:57', NULL, 0, 19, '小米', '100027789721', '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_cart_item` VALUES (114, 41, 225, 11, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'member', '2023-05-11 15:38:03', NULL, 0, 19, '小米', '100035246702', '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); - --- ---------------------------- --- Table structure for oms_company_address --- ---------------------------- -DROP TABLE IF EXISTS `oms_company_address`; -CREATE TABLE `oms_company_address` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `address_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址名称', - `send_status` int(1) NULL DEFAULT NULL COMMENT '默认发货地址:0->否;1->是', - `receive_status` int(1) NULL DEFAULT NULL COMMENT '是否默认收货地址:0->否;1->是', - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收发货人姓名', - `phone` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人电话', - `province` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省/直辖市', - `city` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '市', - `region` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区', - `detail_address` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '公司收发货地址表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of oms_company_address --- ---------------------------- -INSERT INTO `oms_company_address` VALUES (1, '深圳发货点', 1, 1, '大梨', '18000000000', '广东省', '深圳市', '南山区', '科兴科学园'); -INSERT INTO `oms_company_address` VALUES (2, '北京发货点', 0, 0, '大梨', '18000000000', '北京市', NULL, '南山区', '科兴科学园'); -INSERT INTO `oms_company_address` VALUES (3, '南京发货点', 0, 0, '大梨', '18000000000', '江苏省', '南京市', '南山区', '科兴科学园'); - --- ---------------------------- --- Table structure for oms_order --- ---------------------------- -DROP TABLE IF EXISTS `oms_order`; -CREATE TABLE `oms_order` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单id', - `member_id` bigint(20) NOT NULL, - `coupon_id` bigint(20) NULL DEFAULT NULL, - `order_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号', - `create_time` datetime NULL DEFAULT NULL COMMENT '提交时间', - `member_username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户帐号', - `total_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '订单总金额', - `pay_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '应付金额(实际支付金额)', - `freight_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '运费金额', - `promotion_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '促销优化金额(促销价、满减、阶梯价)', - `integration_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '积分抵扣金额', - `coupon_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠券抵扣金额', - `discount_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '管理员后台调整订单使用的折扣金额', - `pay_type` int(1) NULL DEFAULT NULL COMMENT '支付方式:0->未支付;1->支付宝;2->微信', - `source_type` int(1) NULL DEFAULT NULL COMMENT '订单来源:0->PC订单;1->app订单', - `status` int(1) NULL DEFAULT NULL COMMENT '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单', - `order_type` int(1) NULL DEFAULT NULL COMMENT '订单类型:0->正常订单;1->秒杀订单', - `delivery_company` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物流公司(配送方式)', - `delivery_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物流单号', - `auto_confirm_day` int(11) NULL DEFAULT NULL COMMENT '自动确认时间(天)', - `integration` int(11) NULL DEFAULT NULL COMMENT '可以获得的积分', - `growth` int(11) NULL DEFAULT NULL COMMENT '可以活动的成长值', - `promotion_info` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '活动信息', - `bill_type` int(1) NULL DEFAULT NULL COMMENT '发票类型:0->不开发票;1->电子发票;2->纸质发票', - `bill_header` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发票抬头', - `bill_content` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发票内容', - `bill_receiver_phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收票人电话', - `bill_receiver_email` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收票人邮箱', - `receiver_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '收货人姓名', - `receiver_phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '收货人电话', - `receiver_post_code` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人邮编', - `receiver_province` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省份/直辖市', - `receiver_city` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '城市', - `receiver_region` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区', - `receiver_detail_address` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址', - `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单备注', - `confirm_status` int(1) NULL DEFAULT NULL COMMENT '确认收货状态:0->未确认;1->已确认', - `delete_status` int(1) NOT NULL DEFAULT 0 COMMENT '删除状态:0->未删除;1->已删除', - `use_integration` int(11) NULL DEFAULT NULL COMMENT '下单时使用的积分', - `payment_time` datetime NULL DEFAULT NULL COMMENT '支付时间', - `delivery_time` datetime NULL DEFAULT NULL COMMENT '发货时间', - `receive_time` datetime NULL DEFAULT NULL COMMENT '确认收货时间', - `comment_time` datetime NULL DEFAULT NULL COMMENT '评价时间', - `modify_time` datetime NULL DEFAULT NULL COMMENT '修改时间', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 77 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of oms_order --- ---------------------------- -INSERT INTO `oms_order` VALUES (12, 1, 2, '201809150101000001', '2018-09-15 12:24:27', 'test', 18732.00, 16377.75, 20.00, 2344.25, 0.00, 10.00, 10.00, 0, 1, 4, 0, '', '', 15, 13284, 13284, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '江苏省', '常州市', '天宁区', '东晓街道', '111', 0, 0, NULL, NULL, NULL, NULL, NULL, '2019-11-09 16:50:28'); -INSERT INTO `oms_order` VALUES (13, 1, 2, '201809150102000002', '2018-09-15 14:24:29', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 1, 0, '', '', 15, 13284, 13284, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, 1000, '2018-10-11 14:04:19', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (14, 1, 2, '201809130101000001', '2018-09-13 16:57:40', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 3, 0, '顺丰快递', '201707196398345', 15, 13284, 13284, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2018-10-13 13:44:04', '2018-10-16 13:43:41', '2022-11-11 16:19:34', NULL, NULL); -INSERT INTO `oms_order` VALUES (15, 1, 2, '201809130102000002', '2018-09-13 17:03:00', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 3, 0, '顺丰快递', '201707196398346', 15, 13284, 13284, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 1, NULL, '2018-10-13 13:44:54', '2018-10-16 13:45:01', '2018-10-18 14:05:31', NULL, NULL); -INSERT INTO `oms_order` VALUES (16, 1, 2, '201809140101000001', '2018-09-14 16:16:16', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 4, 0, NULL, NULL, 15, 13284, 13284, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (17, 1, 2, '201809150101000003', '2018-09-15 12:24:27', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 0, 1, 4, 0, '顺丰快递', '201707196398345', 15, NULL, NULL, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, '2018-10-12 14:01:28', NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (18, 1, 2, '201809150102000004', '2018-09-15 14:24:29', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 1, 0, '圆通快递', 'xx', 15, NULL, NULL, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, 1000, NULL, '2018-10-16 14:42:17', NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (19, 1, 2, '201809130101000003', '2018-09-13 16:57:40', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 2, 0, NULL, NULL, 15, NULL, NULL, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (20, 1, 2, '201809130102000004', '2018-09-13 17:03:00', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 3, 0, NULL, NULL, 15, NULL, NULL, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (21, 1, 2, '201809140101000002', '2018-09-14 16:16:16', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 4, 0, NULL, NULL, 15, 18682, 18682, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (22, 1, 2, '201809150101000005', '2018-09-15 12:24:27', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 0, 1, 4, 0, '顺丰快递', '201707196398345', 15, 0, 0, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, '2018-10-12 14:01:28', NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (23, 1, 2, '201809150102000006', '2018-09-15 14:24:29', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 1, 0, '顺丰快递', 'xxx', 15, 0, 0, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, 1000, NULL, '2018-10-16 14:41:28', NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (24, 1, 2, '201809130101000005', '2018-09-13 16:57:40', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 2, 0, NULL, NULL, 15, 18682, 18682, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (25, 1, 2, '201809130102000006', '2018-09-13 17:03:00', 'test', 18732.00, 16377.75, 10.00, 2344.25, 0.00, 10.00, 5.00, 1, 1, 4, 0, NULL, NULL, 15, 18682, 18682, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨22', '18033441849', '518000', '北京市', '北京城区', '东城区', '东城街道', 'xxx', 0, 1, NULL, NULL, NULL, NULL, NULL, '2018-10-30 15:08:31'); -INSERT INTO `oms_order` VALUES (26, 1, 2, '201809140101000003', '2018-09-14 16:16:16', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 4, 0, NULL, NULL, 15, 18682, 18682, '单品促销,打折优惠:满3件,打7.50折,满减优惠:满1000.00元,减120.00元,满减优惠:满1000.00元,减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (27, 1, NULL, '202002250100000001', '2020-02-25 15:59:20', 'test', 540.00, 540.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, NULL, 0, 0, '无优惠,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '南山区', '科兴科学园', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (28, 1, NULL, '202002250100000002', '2020-02-25 16:05:47', 'test', 540.00, 540.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, NULL, 0, 0, '无优惠,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '南山区', '科兴科学园', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (29, 1, NULL, '202002250100000003', '2020-02-25 16:07:58', 'test', 540.00, 540.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, NULL, 0, 0, '无优惠,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '南山区', '科兴科学园', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (30, 1, NULL, '202002250100000004', '2020-02-25 16:50:13', 'test', 240.00, 240.00, 20.00, 0.00, 0.00, 0.00, 10.00, 0, 1, 3, 0, '顺丰快递', '12333333', NULL, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '南山区', '科兴科学园', NULL, 1, 0, NULL, '2020-02-25 16:53:29', '2020-02-25 16:54:03', '2020-05-17 19:38:15', NULL, '2020-02-25 16:52:51'); -INSERT INTO `oms_order` VALUES (31, 1, 26, '202005160100000001', '2020-05-16 15:16:54', 'test', 13623.00, 11842.40, 0.00, 1629.60, 1.00, 150.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 13623, 13623, '满减优惠:满5000.00元,减500.00元;打折优惠:满2件,打8.00折;满减优惠:满500.00元,减50.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (32, 1, NULL, '202005170100000001', '2020-05-17 15:00:38', 'test', 6487.00, 6187.00, 0.00, 300.00, 0.00, 0.00, 0.00, 1, 1, 1, 0, NULL, NULL, 15, 6487, 6487, '满减优惠:满3000.00元,减300.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2020-05-17 15:33:28', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (33, 1, NULL, '202005170100000002', '2020-05-17 15:14:18', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 3788, 3788, '满减优惠:满3000.00元,减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (34, 1, NULL, '202005170100000003', '2020-05-17 15:20:10', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 3788, 3788, '满减优惠:满3000.00元,减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (35, 1, NULL, '202005170100000004', '2020-05-17 15:22:03', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', '123', 15, 3788, 3788, '满减优惠:满3000.00元,减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2020-05-17 15:29:07', '2020-05-17 15:30:24', '2020-05-17 15:41:45', NULL, NULL); -INSERT INTO `oms_order` VALUES (36, 1, NULL, '202005170100000005', '2020-05-17 16:59:26', 'test', 10275.00, 9775.00, 0.00, 500.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 10275, 10275, '满减优惠:满5000.00元,减500.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (37, 1, NULL, '202005170100000006', '2020-05-17 19:33:48', 'test', 6487.00, 6187.00, 0.00, 300.00, 0.00, 0.00, 0.00, 1, 1, 3, 0, '顺丰快递', 'aadd', 15, 6487, 6487, '满减优惠:满3000.00元,减300.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2020-05-17 19:33:59', '2020-05-17 19:34:59', '2020-05-17 19:35:50', NULL, NULL); -INSERT INTO `oms_order` VALUES (38, 1, NULL, '202005170100000007', '2020-05-17 19:39:10', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 3788, 3788, '满减优惠:满3000.00元,减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (39, 1, NULL, '202005170100000008', '2020-05-17 19:41:30', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 1, 1, 3, 0, '顺丰快递', 'sdf', 15, 3788, 3788, '满减优惠:满3000.00元,减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 1, NULL, '2020-05-17 19:41:41', '2020-05-17 19:42:07', '2020-05-17 19:42:36', NULL, NULL); -INSERT INTO `oms_order` VALUES (40, 1, NULL, '202005180100000001', '2020-05-18 16:50:03', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 3788, 3788, '满减优惠:满3000.00元,减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2020-05-18 16:50:29', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (41, 1, 26, '202005180100000002', '2020-05-18 20:22:24', 'test', 6487.00, 6037.00, 0.00, 300.00, 0.00, 150.00, 0.00, 1, 1, 3, 0, '顺丰快递', '12313', 15, 6487, 6487, '满减优惠:满3000.00元,减300.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 1, 0, NULL, '2020-05-18 20:22:29', '2020-05-18 20:23:03', '2020-05-18 20:23:20', NULL, NULL); -INSERT INTO `oms_order` VALUES (42, 1, NULL, '202005230100000001', '2020-05-23 16:21:27', 'test', 5398.00, 4318.40, 0.00, 1079.60, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 5398, 5398, '打折优惠:满2件,打8.00折', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 0, 0, NULL, '2020-05-23 16:21:30', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (43, 1, NULL, '202005230100000002', '2020-05-23 17:01:33', 'test', 5398.00, 4318.40, 0.00, 1079.60, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 5398, 5398, '打折优惠:满2件,打8.00折', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (44, 1, NULL, '202005240100000001', '2020-05-24 09:37:07', 'test', 7576.00, 7076.00, 0.00, 500.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 7576, 7576, '满减优惠:满5000.00元,减500.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (45, 1, 25, '202006070100000001', '2020-06-07 17:02:04', 'test', 10275.00, 9674.90, 0.00, 500.00, 0.00, 100.10, 0.00, 1, 1, 1, 0, NULL, NULL, 15, 10275, 10275, '满减优惠:满5000.00元,减500.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 0, 0, NULL, '2020-06-07 17:02:17', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (46, 1, 24, '202006210100000001', '2020-06-21 14:27:34', 'test', 9186.00, 7796.40, 0.00, 1379.60, 0.00, 10.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 9186, 9186, '满减优惠:满3000.00元,减300.00元;打折优惠:满2件,打8.00折', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2020-06-21 14:27:38', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (47, 1, NULL, '202006210100000002', '2020-06-21 15:13:06', 'test', 6487.00, 6187.00, 0.00, 300.00, 0.00, 0.00, 0.00, 1, 1, 3, 0, '顺丰快递', '123131', 15, 6487, 6487, '满减优惠:满3000.00元,减300.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 1, 0, NULL, '2020-06-21 15:13:12', '2020-06-21 15:13:44', '2020-06-21 15:13:58', NULL, NULL); -INSERT INTO `oms_order` VALUES (48, 1, 26, '202006210100000003', '2020-06-21 15:15:18', 'test', 3788.00, 3338.00, 0.00, 300.00, 0.00, 150.00, 0.00, 2, 1, 3, 0, '圆通快递', '12313', 15, 3788, 3788, '满减优惠:满3000.00元,减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2020-06-21 15:15:20', '2020-06-21 15:15:48', '2020-06-21 15:15:58', NULL, NULL); -INSERT INTO `oms_order` VALUES (49, 1, NULL, '202006270100000001', '2020-06-27 10:27:56', 'test', 2699.00, 2699.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 2699, 2699, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 0, 0, NULL, '2020-06-27 10:27:58', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (50, 1, NULL, '202210280100000001', '2022-10-28 14:50:58', 'test', 2699.00, 2699.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 2699, 2699, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 0, 0, NULL, '2022-10-28 14:51:02', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (51, 1, NULL, '202210280100000002', '2022-10-28 15:27:41', 'test', 5999.00, 5999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-10-28 15:27:44', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (52, 1, 30, '202211090100000001', '2022-11-09 15:14:58', 'test', 2999.00, 2799.00, 0.00, 0.00, 0.00, 200.00, 0.00, 2, 1, 3, 0, '顺丰快递', '1233', 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2022-11-09 15:15:00', '2022-11-09 15:16:12', '2022-11-09 15:16:31', NULL, NULL); -INSERT INTO `oms_order` VALUES (53, 1, 27, '202211090100000002', '2022-11-09 15:25:38', 'test', 3599.00, 3589.00, 0.00, 0.00, 0.00, 10.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-09 15:25:41', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (54, 1, 29, '202211090100000003', '2022-11-09 15:26:11', 'test', 5999.00, 5399.00, 0.00, 0.00, 0.00, 600.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-09 15:26:13', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (55, 1, NULL, '202211100100000001', '2022-11-10 16:57:59', 'test', 11998.00, 11998.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (56, 1, 28, '202211110100000001', '2022-11-11 16:12:42', 'test', 2999.00, 2899.00, 0.00, 0.00, 0.00, 100.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-11 16:12:48', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (57, 1, NULL, '202211110100000002', '2022-11-11 16:13:14', 'test', 2999.00, 2999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-11 16:13:21', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (58, 1, NULL, '202211110100000003', '2022-11-11 16:15:08', 'test', 5999.00, 5999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-11 16:17:46', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (59, 1, NULL, '202211110100000004', '2022-11-11 16:21:12', 'test', 649.00, 599.00, 0.00, 50.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 649, 649, '满减优惠:满500.00元,减50.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (60, 1, NULL, '202211160100000001', '2022-11-16 10:36:08', 'test', 11097.00, 11097.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', '1234555', 15, 0, 0, '无优惠;无优惠;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2022-11-16 10:37:25', '2022-11-16 10:42:50', '2022-11-16 10:44:40', NULL, NULL); -INSERT INTO `oms_order` VALUES (61, 1, NULL, '202212210100000001', '2022-12-21 15:49:08', 'test', 2999.00, 2999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (62, 1, NULL, '202212210100000002', '2022-12-21 15:49:57', 'test', 8098.00, 8098.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', 'SDFERR7845', 15, 0, 0, '无优惠;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2022-12-21 15:50:00', '2022-12-21 15:50:23', '2022-12-21 15:50:33', NULL, NULL); -INSERT INTO `oms_order` VALUES (63, 1, NULL, '202212210100000003', '2022-12-21 15:51:09', 'test', 2999.00, 2999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 2, 0, '顺丰快递', '112', 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-12-21 15:51:11', '2023-01-10 10:14:12', NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (64, 1, NULL, '202212210100000004', '2022-12-21 15:51:35', 'test', 2099.00, 2099.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (65, 1, 28, '202212210100000005', '2022-12-21 16:53:07', 'test', 5098.00, 4788.00, 0.00, 200.00, 10.00, 100.00, 0.00, 2, 1, 2, 0, '圆通快递', '115', 15, 0, 0, '满减优惠:满2000.00元,减200.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-12-21 16:53:58', '2023-01-10 10:14:12', NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (66, 1, NULL, '202301100100000001', '2023-01-10 15:34:59', 'test', 5998.00, 5798.00, 0.00, 200.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '满减优惠:满2000.00元,减200.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (67, 1, NULL, '202301100100000002', '2023-01-10 15:39:07', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 3788, 3788, '满减优惠:满3000.00元,减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2023-01-10 15:39:16', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (68, 1, NULL, '202301100100000003', '2023-01-10 16:58:19', 'test', 3999.00, 3899.00, 0.00, 100.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 3788, 3788, '单品促销', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2023-01-10 16:58:21', NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (69, 11, 30, '202305110100000001', '2023-05-11 15:28:56', 'member', 5098.00, 4698.00, 0.00, 200.00, 0.00, 200.00, 0.00, 2, 1, 3, 0, '顺丰快递', '1231313', 15, 0, 0, '满减优惠:满2000.00元,减200.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2023-05-11 15:28:59', '2023-05-11 15:30:08', '2023-05-11 15:30:16', NULL, NULL); -INSERT INTO `oms_order` VALUES (70, 11, NULL, '202305110100000002', '2023-05-11 15:30:36', 'member', 3599.00, 3599.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', '232342', 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2023-05-11 15:30:40', '2023-05-11 15:31:22', '2023-05-11 15:31:30', NULL, NULL); -INSERT INTO `oms_order` VALUES (71, 11, NULL, '202305110100000003', '2023-05-11 15:31:55', 'member', 5999.00, 5999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (72, 11, NULL, '202305110100000004', '2023-05-11 15:33:13', 'member', 5368.00, 5368.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 2, 0, '圆通快递', '1231434', 15, 0, 0, '无优惠;无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2023-05-11 15:33:21', '2023-05-11 15:33:43', NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (73, 11, NULL, '202305110100000005', '2023-05-11 15:34:39', 'member', 5999.00, 5999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 0, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (74, 11, NULL, '202305110100000006', '2023-05-11 15:35:05', 'member', 2999.00, 2799.00, 0.00, 200.00, 0.00, 0.00, 0.00, 2, 1, 2, 0, '顺丰快递', '123131', 15, 0, 0, '满减优惠:满2000.00元,减200.00元', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2023-05-11 15:35:08', '2023-05-11 15:36:00', NULL, NULL, NULL); -INSERT INTO `oms_order` VALUES (75, 11, NULL, '202305110100000007', '2023-05-11 15:35:24', 'member', 2099.00, 2099.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', '123131311', 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2023-05-11 15:35:26', '2023-05-11 15:36:11', '2023-05-11 15:36:34', NULL, NULL); -INSERT INTO `oms_order` VALUES (76, 11, 28, '202305110100000008', '2023-05-11 15:37:16', 'member', 8998.00, 8698.00, 0.00, 200.00, 0.00, 100.00, 0.00, 2, 1, 3, 0, '顺丰快递', '1231313', 15, 0, 0, '无优惠;满减优惠:满2000.00元,减200.00元', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2023-05-11 15:37:18', '2023-05-11 15:37:33', '2023-05-11 15:37:48', NULL, NULL); - --- ---------------------------- --- Table structure for oms_order_item --- ---------------------------- -DROP TABLE IF EXISTS `oms_order_item`; -CREATE TABLE `oms_order_item` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id', - `order_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号', - `product_id` bigint(20) NULL DEFAULT NULL, - `product_pic` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_brand` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '销售价格', - `product_quantity` int(11) NULL DEFAULT NULL COMMENT '购买数量', - `product_sku_id` bigint(20) NULL DEFAULT NULL COMMENT '商品sku编号', - `product_sku_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品sku条码', - `product_category_id` bigint(20) NULL DEFAULT NULL COMMENT '商品分类id', - `promotion_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品促销名称', - `promotion_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品促销分解金额', - `coupon_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠券优惠分解金额', - `integration_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '积分优惠分解金额', - `real_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '该商品经过优惠后的分解金额', - `gift_integration` int(11) NULL DEFAULT 0, - `gift_growth` int(11) NULL DEFAULT 0, - `product_attr` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品销售属性:[{\"key\":\"颜色\",\"value\":\"颜色\"},{\"key\":\"容量\",\"value\":\"4G\"}]', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 115 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单中所包含的商品' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of oms_order_item --- ---------------------------- -INSERT INTO `oms_order_item` VALUES (21, 12, '201809150101000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (22, 12, '201809150101000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠:满3件,打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (23, 12, '201809150101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (24, 12, '201809150101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (25, 12, '201809150101000001', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (26, 13, '201809150102000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (27, 13, '201809150102000002', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠:满3件,打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (28, 13, '201809150102000002', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (29, 13, '201809150102000002', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (30, 13, '201809150102000002', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (31, 14, '201809130101000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (32, 14, '201809130101000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠:满3件,打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (33, 14, '201809130101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (34, 14, '201809130101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (35, 14, '201809130101000001', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (36, 15, '201809130101000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (37, 15, '201809130101000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠:满3件,打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (38, 15, '201809130101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (39, 15, '201809130101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (40, 15, '201809130101000001', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (41, 16, '201809140101000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (42, 16, '201809140101000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠:满3件,打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (43, 16, '201809140101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (44, 16, '201809140101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠:满1000.00元,减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (45, 16, '201809140101000001', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (46, 27, '202002250100000001', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 100.00, 3, 163, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 100.00, 0, 0, NULL); -INSERT INTO `oms_order_item` VALUES (47, 27, '202002250100000001', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 120.00, 2, 164, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 120.00, 0, 0, NULL); -INSERT INTO `oms_order_item` VALUES (48, 28, '202002250100000002', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 100.00, 3, 163, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 100.00, 0, 0, NULL); -INSERT INTO `oms_order_item` VALUES (49, 28, '202002250100000002', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 120.00, 2, 164, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 120.00, 0, 0, NULL); -INSERT INTO `oms_order_item` VALUES (50, 29, '202002250100000003', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 100.00, 3, 163, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 100.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `oms_order_item` VALUES (51, 29, '202002250100000003', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 120.00, 2, 164, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 120.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `oms_order_item` VALUES (52, 30, '202002250100000004', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 120.00, 2, 164, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 120.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `oms_order_item` VALUES (53, 31, '202005160100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 2, 110, '201806070026001', 19, '满减优惠:满5000.00元,减500.00元', 250.00, 75.00, 0.28, 3462.72, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (54, 31, '202005160100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 2, 98, '201808270027001', 19, '打折优惠:满2件,打8.00折', 539.80, 0.00, 0.20, 2159.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (55, 31, '202005160100000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠:满500.00元,减50.00元', 50.00, 0.00, 0.05, 598.95, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (56, 32, '202005170100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (57, 32, '202005170100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (58, 33, '202005170100000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (59, 34, '202005170100000003', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (60, 35, '202005170100000004', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (61, 36, '202005170100000005', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 2, 110, '201806070026001', 19, '满减优惠:满5000.00元,减500.00元', 250.00, 0.00, 0.00, 3538.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (62, 36, '202005170100000005', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (63, 37, '202005170100000006', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (64, 37, '202005170100000006', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (65, 38, '202005170100000007', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (66, 39, '202005170100000008', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (67, 40, '202005180100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (68, 41, '202005180100000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 150.00, 0.00, 3338.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (69, 41, '202005180100000002', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (70, 42, '202005230100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 2, 98, '201808270027001', 19, '打折优惠:满2件,打8.00折', 539.80, 0.00, 0.00, 2159.20, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (71, 43, '202005230100000002', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 2, 98, '201808270027001', 19, '打折优惠:满2件,打8.00折', 539.80, 0.00, 0.00, 2159.20, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (72, 44, '202005240100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 2, 110, '201806070026001', 19, '满减优惠:满5000.00元,减500.00元', 250.00, 0.00, 0.00, 3538.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (73, 45, '202006070100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 2, 110, '201806070026001', 19, '满减优惠:满5000.00元,减500.00元', 250.00, 36.90, 0.00, 3501.10, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (74, 45, '202006070100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 26.30, 0.00, 2672.70, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (75, 46, '202006210100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 4.12, 0.00, 3483.88, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (76, 46, '202006210100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 2, 98, '201808270027001', 19, '打折优惠:满2件,打8.00折', 539.80, 2.94, 0.00, 2156.26, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (77, 47, '202006210100000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (78, 47, '202006210100000002', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (79, 48, '202006210100000003', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 150.00, 0.00, 3338.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (80, 49, '202006270100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (81, 50, '202210280100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (82, 51, '202210280100000002', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 紫色 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (83, 52, '202211090100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 200.00, 0.00, 2799.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (84, 53, '202211090100000002', 38, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款(64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A )', '苹果', '100044025833', 3599.00, 1, 213, '202210280038001', 53, '无优惠', 0.00, 10.00, 0.00, 3589.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `oms_order_item` VALUES (85, 54, '202211090100000003', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 600.00, 0.00, 5399.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (86, 55, '202211100100000001', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 2, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (87, 56, '202211110100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 100.00, 0.00, 2899.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (88, 57, '202211110100000002', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 0.00, 0.00, 2999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (89, 58, '202211110100000003', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (90, 59, '202211110100000004', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠:满500.00元,减50.00元', 50.00, 0.00, 0.00, 599.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (91, 60, '202211160100000001', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (92, 60, '202211160100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 0.00, 0.00, 2999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (93, 60, '202211160100000001', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 0.00, 0.00, 2099.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (94, 61, '202212210100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 0.00, 0.00, 2999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (95, 62, '202212210100000002', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (96, 62, '202212210100000002', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 0.00, 0.00, 2099.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (97, 63, '202212210100000003', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 0.00, 0.00, 2999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (98, 64, '202212210100000004', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 0.00, 0.00, 2099.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (99, 65, '202212210100000005', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '满减优惠:满2000.00元,减200.00元', 200.00, 58.80, 5.88, 2734.32, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (100, 65, '202212210100000005', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 41.20, 4.12, 2053.68, 0, 0, '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (101, 66, '202301100100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 2, 221, '202211040040001', 19, '满减优惠:满2000.00元,减200.00元', 100.00, 0.00, 0.00, 2899.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (102, 67, '202301100100000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠:满3000.00元,减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `oms_order_item` VALUES (103, 68, '202301100100000003', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3999.00, 1, 111, '201806070026002', 19, '单品促销', 100.00, 0.00, 0.00, 3899.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `oms_order_item` VALUES (104, 69, '202305110100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '满减优惠:满2000.00元,减200.00元', 200.00, 117.60, 0.00, 2681.40, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (105, 69, '202305110100000001', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 82.40, 0.00, 2016.60, 0, 0, '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (106, 70, '202305110100000002', 38, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款', '苹果', '100044025833', 3599.00, 1, 213, '202210280038001', 53, '无优惠', 0.00, 0.00, 0.00, 3599.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `oms_order_item` VALUES (107, 71, '202305110100000003', 39, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '小米', '100023207945', 5999.00, 1, 217, '202210280039001', 54, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"新小米Pro 14英寸 2.8K屏\"},{\"key\":\"版本\",\"value\":\"R7 16G 512\"}]'); -INSERT INTO `oms_order_item` VALUES (108, 72, '202305110100000004', 42, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息', '华为', '100035295081', 4999.00, 1, 229, '202211040042001', 19, '无优惠', 0.00, 0.00, 0.00, 4999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"曜金黑\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (109, 72, '202305110100000004', 44, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', '三星(SAMSUNG)500GB SSD固态硬盘 M.2接口(NVMe协议)', '三星', '100018768480', 369.00, 1, 235, '202211080044001', 55, '无优惠', 0.00, 0.00, 0.00, 369.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"新品980|NVMe PCIe3.0*4\"},{\"key\":\"版本\",\"value\":\"512GB\"}]'); -INSERT INTO `oms_order_item` VALUES (110, 73, '202305110100000005', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (111, 74, '202305110100000006', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '满减优惠:满2000.00元,减200.00元', 200.00, 0.00, 0.00, 2799.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (112, 75, '202305110100000007', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 0.00, 0.00, 2099.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `oms_order_item` VALUES (113, 76, '202305110100000008', 39, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '小米', '100023207945', 5999.00, 1, 217, '202210280039001', 54, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"新小米Pro 14英寸 2.8K屏\"},{\"key\":\"版本\",\"value\":\"R7 16G 512\"}]'); -INSERT INTO `oms_order_item` VALUES (114, 76, '202305110100000008', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '满减优惠:满2000.00元,减200.00元', 200.00, 100.00, 0.00, 2699.00, 0, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); - --- ---------------------------- --- Table structure for oms_order_operate_history --- ---------------------------- -DROP TABLE IF EXISTS `oms_order_operate_history`; -CREATE TABLE `oms_order_operate_history` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id', - `operate_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人:用户;系统;后台管理员', - `create_time` datetime NULL DEFAULT NULL COMMENT '操作时间', - `order_status` int(1) NULL DEFAULT NULL COMMENT '订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单', - `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 44 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单操作历史记录' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of oms_order_operate_history --- ---------------------------- -INSERT INTO `oms_order_operate_history` VALUES (5, 12, '后台管理员', '2018-10-12 14:01:29', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (6, 13, '后台管理员', '2018-10-12 14:01:29', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (7, 12, '后台管理员', '2018-10-12 14:13:10', 4, '订单关闭:买家退货'); -INSERT INTO `oms_order_operate_history` VALUES (8, 13, '后台管理员', '2018-10-12 14:13:10', 4, '订单关闭:买家退货'); -INSERT INTO `oms_order_operate_history` VALUES (9, 22, '后台管理员', '2018-10-15 16:31:48', 4, '订单关闭:xxx'); -INSERT INTO `oms_order_operate_history` VALUES (10, 22, '后台管理员', '2018-10-15 16:35:08', 4, '订单关闭:xxx'); -INSERT INTO `oms_order_operate_history` VALUES (11, 22, '后台管理员', '2018-10-15 16:35:59', 4, '订单关闭:xxx'); -INSERT INTO `oms_order_operate_history` VALUES (12, 17, '后台管理员', '2018-10-15 16:43:40', 4, '订单关闭:xxx'); -INSERT INTO `oms_order_operate_history` VALUES (13, 25, '后台管理员', '2018-10-15 16:52:14', 4, '订单关闭:xxx'); -INSERT INTO `oms_order_operate_history` VALUES (14, 26, '后台管理员', '2018-10-15 16:52:14', 4, '订单关闭:xxx'); -INSERT INTO `oms_order_operate_history` VALUES (15, 23, '后台管理员', '2018-10-16 14:41:28', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (16, 13, '后台管理员', '2018-10-16 14:42:17', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (17, 18, '后台管理员', '2018-10-16 14:42:17', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (18, 26, '后台管理员', '2018-10-30 14:37:44', 4, '订单关闭:关闭订单'); -INSERT INTO `oms_order_operate_history` VALUES (19, 25, '后台管理员', '2018-10-30 15:07:01', 0, '修改收货人信息'); -INSERT INTO `oms_order_operate_history` VALUES (20, 25, '后台管理员', '2018-10-30 15:08:13', 0, '修改费用信息'); -INSERT INTO `oms_order_operate_history` VALUES (21, 25, '后台管理员', '2018-10-30 15:08:31', 0, '修改备注信息:xxx'); -INSERT INTO `oms_order_operate_history` VALUES (22, 25, '后台管理员', '2018-10-30 15:08:39', 4, '订单关闭:2222'); -INSERT INTO `oms_order_operate_history` VALUES (23, 12, '后台管理员', '2019-11-09 16:50:28', 4, '修改备注信息:111'); -INSERT INTO `oms_order_operate_history` VALUES (24, 30, '后台管理员', '2020-02-25 16:52:37', 0, '修改费用信息'); -INSERT INTO `oms_order_operate_history` VALUES (25, 30, '后台管理员', '2020-02-25 16:52:51', 0, '修改费用信息'); -INSERT INTO `oms_order_operate_history` VALUES (26, 30, '后台管理员', '2020-02-25 16:54:03', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (27, 35, '后台管理员', '2020-05-17 15:30:24', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (28, 37, '后台管理员', '2020-05-17 19:35:00', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (29, 39, '后台管理员', '2020-05-17 19:42:08', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (30, 41, '后台管理员', '2020-05-18 20:23:04', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (31, 47, '后台管理员', '2020-06-21 15:13:44', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (32, 48, '后台管理员', '2020-06-21 15:15:49', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (33, 52, '后台管理员', '2022-11-09 15:16:13', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (34, 60, '后台管理员', '2022-11-16 10:42:50', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (35, 62, '后台管理员', '2022-12-21 15:50:24', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (36, 63, '后台管理员', '2023-01-10 10:08:34', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (37, 65, '后台管理员', '2023-01-10 10:08:34', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (38, 69, '后台管理员', '2023-05-11 15:30:08', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (39, 70, '后台管理员', '2023-05-11 15:31:22', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (40, 72, '后台管理员', '2023-05-11 15:33:43', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (41, 74, '后台管理员', '2023-05-11 15:36:00', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (42, 75, '后台管理员', '2023-05-11 15:36:11', 2, '完成发货'); -INSERT INTO `oms_order_operate_history` VALUES (43, 76, '后台管理员', '2023-05-11 15:37:34', 2, '完成发货'); - --- ---------------------------- --- Table structure for oms_order_return_apply --- ---------------------------- -DROP TABLE IF EXISTS `oms_order_return_apply`; -CREATE TABLE `oms_order_return_apply` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id', - `company_address_id` bigint(20) NULL DEFAULT NULL COMMENT '收货地址表id', - `product_id` bigint(20) NULL DEFAULT NULL COMMENT '退货商品id', - `order_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号', - `create_time` datetime NULL DEFAULT NULL COMMENT '申请时间', - `member_username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会员用户名', - `return_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '退款金额', - `return_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '退货人姓名', - `return_phone` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '退货人电话', - `status` int(1) NULL DEFAULT NULL COMMENT '申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝', - `handle_time` datetime NULL DEFAULT NULL COMMENT '处理时间', - `product_pic` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品图片', - `product_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称', - `product_brand` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品品牌', - `product_attr` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品销售属性:颜色:红色;尺码:xl;', - `product_count` int(11) NULL DEFAULT NULL COMMENT '退货数量', - `product_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品单价', - `product_real_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品实际支付单价', - `reason` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原因', - `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述', - `proof_pics` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '凭证图片,以逗号隔开', - `handle_note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '处理备注', - `handle_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '处理人员', - `receive_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人', - `receive_time` datetime NULL DEFAULT NULL COMMENT '收货时间', - `receive_note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货备注', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单退货申请' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of oms_order_return_apply --- ---------------------------- -INSERT INTO `oms_order_return_apply` VALUES (3, 12, 1, 26, '201809150101000001', '2018-10-17 14:34:57', 'test', 0.00, '大梨', '18000000000', 2, '2022-11-11 10:16:18', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色:金色;内存:16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '111', 'admin', 'admin', '2022-11-11 10:16:26', NULL); -INSERT INTO `oms_order_return_apply` VALUES (4, 12, 2, 27, '201809150101000001', '2018-10-17 14:40:21', 'test', 3585.98, '大梨', '18000000000', 1, '2018-10-18 13:54:10', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色:黑色;内存:32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', '已经处理了', 'admin', NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (5, 12, 3, 28, '201809150101000001', '2018-10-17 14:44:18', 'test', 3585.98, '大梨', '18000000000', 2, '2018-10-18 13:55:28', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色:金色;内存:16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', '已经处理了', 'admin', 'admin', '2018-10-18 13:55:58', '已经处理了'); -INSERT INTO `oms_order_return_apply` VALUES (8, 13, NULL, 28, '201809150102000002', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 3, '2018-10-18 13:57:12', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色:金色;内存:16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', '理由不够充分', 'admin', NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (9, 14, 2, 26, '201809130101000001', '2018-10-17 14:34:57', 'test', 3500.00, '大梨', '18000000000', 2, '2018-10-24 15:44:56', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色:金色;内存:16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', '呵呵', 'admin', 'admin', '2018-10-24 15:46:35', '收货了'); -INSERT INTO `oms_order_return_apply` VALUES (10, 14, NULL, 27, '201809130101000001', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 3, '2018-10-24 15:46:57', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色:黑色;内存:32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', '就是不退', 'admin', NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (11, 14, 2, 28, '201809130101000001', '2018-10-17 14:44:18', 'test', 591.05, '大梨', '18000000000', 1, '2018-10-24 17:09:04', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色:金色;内存:16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', '可以退款', 'admin', NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (12, 15, 3, 26, '201809130102000002', '2018-10-17 14:34:57', 'test', 3500.00, '大梨', '18000000000', 2, '2018-10-24 17:22:54', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色:金色;内存:16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', '退货了', 'admin', 'admin', '2018-10-24 17:23:06', '收货了'); -INSERT INTO `oms_order_return_apply` VALUES (13, 15, NULL, 27, '201809130102000002', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 3, '2018-10-24 17:23:30', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色:黑色;内存:32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', '无法退货', 'admin', NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (15, 16, NULL, 26, '201809140101000001', '2018-10-17 14:34:57', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色:金色;内存:16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (16, 16, NULL, 27, '201809140101000001', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色:黑色;内存:32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (17, 16, NULL, 28, '201809140101000001', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色:金色;内存:16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (18, 17, NULL, 26, '201809150101000003', '2018-10-17 14:34:57', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色:金色;内存:16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (19, 17, NULL, 27, '201809150101000003', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色:黑色;内存:32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (20, 17, NULL, 28, '201809150101000003', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色:金色;内存:16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (21, 18, NULL, 26, '201809150102000004', '2018-10-17 14:34:57', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色:金色;内存:16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (22, 18, NULL, 27, '201809150102000004', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色:黑色;内存:32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (23, 18, NULL, 28, '201809150102000004', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色:金色;内存:16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (24, 19, NULL, 26, '201809130101000003', '2018-10-17 14:34:57', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色:金色;内存:16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (25, 19, NULL, 27, '201809130101000003', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色:黑色;内存:32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', NULL, NULL, NULL, NULL, NULL); -INSERT INTO `oms_order_return_apply` VALUES (26, 19, NULL, 28, '201809130101000003', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色:金色;内存:16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', NULL, NULL, NULL, NULL, NULL); - --- ---------------------------- --- Table structure for oms_order_return_reason --- ---------------------------- -DROP TABLE IF EXISTS `oms_order_return_reason`; -CREATE TABLE `oms_order_return_reason` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '退货类型', - `sort` int(11) NULL DEFAULT NULL, - `status` int(1) NULL DEFAULT NULL COMMENT '状态:0->不启用;1->启用', - `create_time` datetime NULL DEFAULT NULL COMMENT '添加时间', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '退货原因表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of oms_order_return_reason --- ---------------------------- -INSERT INTO `oms_order_return_reason` VALUES (1, '质量问题', 1, 1, '2018-10-17 10:00:45'); -INSERT INTO `oms_order_return_reason` VALUES (2, '尺码太大', 1, 1, '2018-10-17 10:01:03'); -INSERT INTO `oms_order_return_reason` VALUES (3, '颜色不喜欢', 1, 1, '2018-10-17 10:01:13'); -INSERT INTO `oms_order_return_reason` VALUES (4, '7天无理由退货', 1, 1, '2018-10-17 10:01:47'); -INSERT INTO `oms_order_return_reason` VALUES (5, '价格问题', 1, 0, '2018-10-17 10:01:57'); -INSERT INTO `oms_order_return_reason` VALUES (12, '发票问题', 0, 1, '2018-10-19 16:28:36'); -INSERT INTO `oms_order_return_reason` VALUES (13, '其他问题', 0, 1, '2018-10-19 16:28:51'); -INSERT INTO `oms_order_return_reason` VALUES (14, '物流问题', 0, 1, '2018-10-19 16:29:01'); -INSERT INTO `oms_order_return_reason` VALUES (15, '售后问题', 0, 1, '2018-10-19 16:29:11'); - --- ---------------------------- --- Table structure for oms_order_setting --- ---------------------------- -DROP TABLE IF EXISTS `oms_order_setting`; -CREATE TABLE `oms_order_setting` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `flash_order_overtime` int(11) NULL DEFAULT NULL COMMENT '秒杀订单超时关闭时间(分)', - `normal_order_overtime` int(11) NULL DEFAULT NULL COMMENT '正常订单超时时间(分)', - `confirm_overtime` int(11) NULL DEFAULT NULL COMMENT '发货后自动确认收货时间(天)', - `finish_overtime` int(11) NULL DEFAULT NULL COMMENT '自动完成交易时间,不能申请售后(天)', - `comment_overtime` int(11) NULL DEFAULT NULL COMMENT '订单完成后自动好评时间(天)', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单设置表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of oms_order_setting --- ---------------------------- -INSERT INTO `oms_order_setting` VALUES (1, 60, 120, 15, 7, 7); - --- ---------------------------- --- Table structure for pms_album --- ---------------------------- -DROP TABLE IF EXISTS `pms_album`; -CREATE TABLE `pms_album` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `cover_pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `pic_count` int(11) NULL DEFAULT NULL, - `sort` int(11) NULL DEFAULT NULL, - `description` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '相册表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_album --- ---------------------------- - --- ---------------------------- --- Table structure for pms_album_pic --- ---------------------------- -DROP TABLE IF EXISTS `pms_album_pic`; -CREATE TABLE `pms_album_pic` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `album_id` bigint(20) NULL DEFAULT NULL, - `pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '画册图片表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_album_pic --- ---------------------------- - --- ---------------------------- --- Table structure for pms_brand --- ---------------------------- -DROP TABLE IF EXISTS `pms_brand`; -CREATE TABLE `pms_brand` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `first_letter` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '首字母', - `sort` int(11) NULL DEFAULT NULL, - `factory_status` int(1) NULL DEFAULT NULL COMMENT '是否为品牌制造商:0->不是;1->是', - `show_status` int(1) NULL DEFAULT NULL, - `product_count` int(11) NULL DEFAULT NULL COMMENT '产品数量', - `product_comment_count` int(11) NULL DEFAULT NULL COMMENT '产品评论数量', - `logo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '品牌logo', - `big_pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专区大图', - `brand_story` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '品牌故事', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 60 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '品牌表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_brand --- ---------------------------- -INSERT INTO `pms_brand` VALUES (1, '万和', 'W', 0, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5b07ca8aN4e127d2f.jpg', 'http://img13.360buyimg.com/cms/jfs/t1/121860/35/2430/187800/5ec4e294E22f3ffcc/1e233b65b94ba192.jpg', '万和成立于1993年8月,总部位于广东顺德国家级高新技术开发区内,是国内生产规模最大的燃气具专业制造企业,也是中国燃气具发展战略的首倡者和推动者、中国五金制品协会燃气用具分会第三届理事长单位。'); -INSERT INTO `pms_brand` VALUES (2, '三星', 'S', 100, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/57201b47N7bf15715.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_banner_01.png', '三星集团(英文:SAMSUNG、韩文:삼성)是韩国最大的跨国企业集团,三星集团包括众多的国际下属企业,旗下子公司有:三星电子、三星物产、三星人寿保险等,业务涉及电子、金融、机械、化学等众多领域。'); -INSERT INTO `pms_brand` VALUES (3, '华为', 'H', 100, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5abf6f26N31658aa2.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/huawei_banner_01.png', '荣耀品牌成立于2013年,是华为旗下手机双品牌之一。荣耀以“创新、品质、服务”为核心战略,为全球年轻人提供潮酷的全场景智能化体验,打造年轻人向往的先锋文化和潮流生活方式'); -INSERT INTO `pms_brand` VALUES (4, '格力', 'G', 30, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg (3).jpg', NULL, 'Victoria\'s Secret的故事'); -INSERT INTO `pms_brand` VALUES (5, '方太', 'F', 20, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg (4).jpg', NULL, 'Victoria\'s Secret的故事'); -INSERT INTO `pms_brand` VALUES (6, '小米', 'M', 500, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5565f5a2N0b8169ae.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/xiaomi_banner_01.png', '小米公司正式成立于2010年4月,是一家专注于高端智能手机、互联网电视自主研发的创新型科技企业。主要由前谷歌、微软、摩托、金山等知名公司的顶尖人才组建。'); -INSERT INTO `pms_brand` VALUES (21, 'OPPO', 'O', 0, 1, 1, 88, 500, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg(6).jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_banner_01.png', 'OPPO于2008年推出第一款“笑脸手机”,由此开启探索和引领至美科技之旅。今天,OPPO凭借以Find和R系列手机为核心的智能终端产品,以及OPPO+等互联网服务,让全球消费者尽享至美科技。'); -INSERT INTO `pms_brand` VALUES (49, '七匹狼', 'S', 200, 1, 1, 77, 400, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/qipilang.png', NULL, 'BOOB的故事'); -INSERT INTO `pms_brand` VALUES (50, '海澜之家', 'H', 200, 1, 1, 66, 300, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a5c69b9N5d6c5696.jpg', 'http://img10.360buyimg.com/cms/jfs/t1/133148/4/1605/470028/5edaf5ccEd7a687a9/e0a007631361ff75.jpg', '“海澜之家”(英文缩写:HLA)是海澜之家股份有限公司旗下的服装品牌,总部位于中国江苏省无锡市江阴市,主要采用连锁零售的模式,销售男性服装、配饰与相关产品。'); -INSERT INTO `pms_brand` VALUES (51, '苹果', 'A', 200, 1, 1, 55, 200, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/49b30bb0377030d1.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/apple_banner_01.png', '苹果公司(Apple Inc. )是美国的一家高科技公司。 由史蒂夫·乔布斯、斯蒂夫·沃兹尼亚克和罗·韦恩(Ron Wayne)等人于1976年4月1日创立,并命名为美国苹果电脑公司(Apple Computer Inc. ),2007年1月9日更名为苹果公司,总部位于加利福尼亚州的...'); -INSERT INTO `pms_brand` VALUES (58, 'NIKE', 'N', 0, 1, 0, 33, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/timg (51).jpg', '', 'NIKE的故事'); -INSERT INTO `pms_brand` VALUES (59, '测试品牌', 'C', 0, 0, 0, NULL, NULL, 'http://localhost:9000/mall/20220609/Snipaste_2022-06-08_14-35-53.png', 'http://localhost:9000/mall/20220609/biji_05.jpg', '12345'); - --- ---------------------------- --- Table structure for pms_comment --- ---------------------------- -DROP TABLE IF EXISTS `pms_comment`; -CREATE TABLE `pms_comment` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `member_nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `star` int(3) NULL DEFAULT NULL COMMENT '评价星数:0->5', - `member_ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '评价的ip', - `create_time` datetime NULL DEFAULT NULL, - `show_status` int(1) NULL DEFAULT NULL, - `product_attribute` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '购买时的商品属性', - `collect_couont` int(11) NULL DEFAULT NULL, - `read_count` int(11) NULL DEFAULT NULL, - `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL, - `pics` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '上传图片地址,以逗号隔开', - `member_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '评论用户头像', - `replay_count` int(11) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品评价表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_comment --- ---------------------------- - --- ---------------------------- --- Table structure for pms_comment_replay --- ---------------------------- -DROP TABLE IF EXISTS `pms_comment_replay`; -CREATE TABLE `pms_comment_replay` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `comment_id` bigint(20) NULL DEFAULT NULL, - `member_nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `member_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `content` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `type` int(1) NULL DEFAULT NULL COMMENT '评论人员类型;0->会员;1->管理员', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品评价回复表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_comment_replay --- ---------------------------- - --- ---------------------------- --- Table structure for pms_feight_template --- ---------------------------- -DROP TABLE IF EXISTS `pms_feight_template`; -CREATE TABLE `pms_feight_template` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `charge_type` int(1) NULL DEFAULT NULL COMMENT '计费类型:0->按重量;1->按件数', - `first_weight` decimal(10, 2) NULL DEFAULT NULL COMMENT '首重kg', - `first_fee` decimal(10, 2) NULL DEFAULT NULL COMMENT '首费(元)', - `continue_weight` decimal(10, 2) NULL DEFAULT NULL, - `continme_fee` decimal(10, 2) NULL DEFAULT NULL, - `dest` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '目的地(省、市)', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '运费模版' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_feight_template --- ---------------------------- - --- ---------------------------- --- Table structure for pms_member_price --- ---------------------------- -DROP TABLE IF EXISTS `pms_member_price`; -CREATE TABLE `pms_member_price` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `member_level_id` bigint(20) NULL DEFAULT NULL, - `member_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '会员价格', - `member_level_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 426 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品会员价格表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_member_price --- ---------------------------- -INSERT INTO `pms_member_price` VALUES (26, 7, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (27, 8, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (28, 9, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (29, 10, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (30, 11, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (31, 12, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (32, 13, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (33, 14, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (37, 18, 1, 500.00, NULL); -INSERT INTO `pms_member_price` VALUES (44, 7, 2, 480.00, NULL); -INSERT INTO `pms_member_price` VALUES (45, 7, 3, 450.00, NULL); -INSERT INTO `pms_member_price` VALUES (52, 22, 1, NULL, NULL); -INSERT INTO `pms_member_price` VALUES (53, 22, 2, NULL, NULL); -INSERT INTO `pms_member_price` VALUES (54, 22, 3, NULL, NULL); -INSERT INTO `pms_member_price` VALUES (58, 24, 1, NULL, NULL); -INSERT INTO `pms_member_price` VALUES (59, 24, 2, NULL, NULL); -INSERT INTO `pms_member_price` VALUES (60, 24, 3, NULL, NULL); -INSERT INTO `pms_member_price` VALUES (112, 23, 1, 88.00, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (113, 23, 2, 88.00, '白金会员'); -INSERT INTO `pms_member_price` VALUES (114, 23, 3, 66.00, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (246, 36, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (247, 36, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (248, 36, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (249, 35, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (250, 35, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (251, 35, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (258, 30, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (259, 30, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (260, 30, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (261, 31, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (262, 31, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (263, 31, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (264, 32, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (265, 32, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (266, 32, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (270, 33, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (271, 33, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (272, 33, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (273, 34, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (274, 34, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (275, 34, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (285, 27, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (286, 27, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (287, 27, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (294, 28, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (295, 28, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (296, 28, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (297, 29, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (298, 29, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (299, 29, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (315, 37, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (316, 37, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (317, 37, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (381, 38, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (382, 38, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (383, 38, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (384, 39, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (385, 39, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (386, 39, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (387, 41, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (388, 41, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (389, 41, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (390, 42, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (391, 42, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (392, 42, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (393, 43, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (394, 43, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (395, 43, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (396, 44, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (397, 44, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (398, 44, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (399, 45, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (400, 45, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (401, 45, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (402, 40, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (403, 40, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (404, 40, 3, NULL, '钻石会员'); -INSERT INTO `pms_member_price` VALUES (423, 26, 1, NULL, '黄金会员'); -INSERT INTO `pms_member_price` VALUES (424, 26, 2, NULL, '白金会员'); -INSERT INTO `pms_member_price` VALUES (425, 26, 3, NULL, '钻石会员'); - --- ---------------------------- --- Table structure for pms_product --- ---------------------------- -DROP TABLE IF EXISTS `pms_product`; -CREATE TABLE `pms_product` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `brand_id` bigint(20) NULL DEFAULT NULL, - `product_category_id` bigint(20) NULL DEFAULT NULL, - `feight_template_id` bigint(20) NULL DEFAULT NULL, - `product_attribute_category_id` bigint(20) NULL DEFAULT NULL, - `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '货号', - `delete_status` int(1) NULL DEFAULT NULL COMMENT '删除状态:0->未删除;1->已删除', - `publish_status` int(1) NULL DEFAULT NULL COMMENT '上架状态:0->下架;1->上架', - `new_status` int(1) NULL DEFAULT NULL COMMENT '新品状态:0->不是新品;1->新品', - `recommand_status` int(1) NULL DEFAULT NULL COMMENT '推荐状态;0->不推荐;1->推荐', - `verify_status` int(1) NULL DEFAULT NULL COMMENT '审核状态:0->未审核;1->审核通过', - `sort` int(11) NULL DEFAULT NULL COMMENT '排序', - `sale` int(11) NULL DEFAULT NULL COMMENT '销量', - `price` decimal(10, 2) NULL DEFAULT NULL, - `promotion_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '促销价格', - `gift_growth` int(11) NULL DEFAULT 0 COMMENT '赠送的成长值', - `gift_point` int(11) NULL DEFAULT 0 COMMENT '赠送的积分', - `use_point_limit` int(11) NULL DEFAULT NULL COMMENT '限制使用的积分数', - `sub_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '副标题', - `description` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '商品描述', - `original_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '市场价', - `stock` int(11) NULL DEFAULT NULL COMMENT '库存', - `low_stock` int(11) NULL DEFAULT NULL COMMENT '库存预警值', - `unit` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位', - `weight` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品重量,默认为克', - `preview_status` int(1) NULL DEFAULT NULL COMMENT '是否为预告商品:0->不是;1->是', - `service_ids` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮', - `keywords` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `note` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `album_pics` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '画册图片,连产品图片限制为5张,以逗号分割', - `detail_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `detail_desc` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL, - `detail_html` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '产品详情网页内容', - `detail_mobile_html` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '移动端网页详情', - `promotion_start_time` datetime NULL DEFAULT NULL COMMENT '促销开始时间', - `promotion_end_time` datetime NULL DEFAULT NULL COMMENT '促销结束时间', - `promotion_per_limit` int(11) NULL DEFAULT NULL COMMENT '活动限购数量', - `promotion_type` int(1) NULL DEFAULT NULL COMMENT '促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购', - `brand_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '品牌名称', - `product_category_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品分类名称', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 46 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品信息' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product --- ---------------------------- -INSERT INTO `pms_product` VALUES (1, 49, 7, 0, 0, '银色星芒刺绣网纱底裤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 1, 1, 1, 100, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '七匹狼', '外套'); -INSERT INTO `pms_product` VALUES (2, 49, 7, 0, 0, '银色星芒刺绣网纱底裤2', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86578', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤2', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '

银色星芒刺绣网纱底裤

', '

银色星芒刺绣网纱底裤

', NULL, NULL, NULL, 0, '七匹狼', '外套'); -INSERT INTO `pms_product` VALUES (3, 1, 7, 0, 0, '银色星芒刺绣网纱底裤3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86579', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤3', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (4, 1, 7, 0, 0, '银色星芒刺绣网纱底裤4', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86580', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤4', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (5, 1, 7, 0, 0, '银色星芒刺绣网纱底裤5', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86581', 1, 0, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤5', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (6, 1, 7, 0, 0, '银色星芒刺绣网纱底裤6', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86582', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤6', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (7, 1, 7, 0, 1, '女式超柔软拉毛运动开衫', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (8, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (9, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (10, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (11, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (12, 1, 7, 0, 1, '女式超柔软拉毛运动开衫2', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (13, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (14, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (18, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); -INSERT INTO `pms_product` VALUES (22, 6, 7, 0, 1, 'test', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', '', 1, 1, 0, 0, 0, 0, 0, 0.00, NULL, 0, 0, 0, 'test', '', 0.00, 100, 0, '', 0.00, 1, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '外套'); -INSERT INTO `pms_product` VALUES (23, 6, 19, 0, 1, '毛衫测试', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', 'NO.1098', 1, 1, 1, 1, 0, 0, 0, 99.00, NULL, 99, 99, 1000, '毛衫测试11', 'xxx', 109.00, 100, 0, '件', 1000.00, 1, '1,2,3', '毛衫测试', '毛衫测试', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', '毛衫测试', '毛衫测试', '

', '', NULL, NULL, 0, 2, '小米', '手机数码'); -INSERT INTO `pms_product` VALUES (24, 6, 7, 0, NULL, 'xxx', '', '', 1, 0, 0, 0, 0, 0, 0, 0.00, NULL, 0, 0, 0, 'xxx', '', 0.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '外套'); -INSERT INTO `pms_product` VALUES (26, 3, 19, 0, 3, '华为 HUAWEI P20 ', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '6946605', 0, 1, 1, 1, 0, 100, 100, 3788.00, 3659.00, 3788, 3788, 0, 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '', 4288.00, 1000, 0, '件', 0.00, 1, '2,3,1', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ab46a3cN616bdc41.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf5fN2522b9dc.jpg', '', '', '

', '

\"\"

\n

\"\"

', '2023-01-10 15:49:38', '2023-01-31 00:00:00', 0, 1, '华为', '手机通讯'); -INSERT INTO `pms_product` VALUES (27, 6, 19, 0, 3, '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '7437788', 0, 1, 1, 1, 0, 0, 99, 2699.00, NULL, 2699, 2699, 0, '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', 2699.00, 100, 0, '', 0.00, 0, '1', '', '', '', '', '', '

', '

', NULL, NULL, 0, 3, '小米', '手机通讯'); -INSERT INTO `pms_product` VALUES (28, 6, 19, 0, 3, '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '7437789', 0, 1, 1, 1, 0, 0, 98, 649.00, NULL, 649, 649, 0, '8天超长待机,137g轻巧机身,高通骁龙处理器小米6X低至1299,点击抢购', '', 649.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '
\n

 

\n
', NULL, NULL, 0, 4, '小米', '手机通讯'); -INSERT INTO `pms_product` VALUES (29, 51, 19, 0, 3, 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', '7437799', 0, 1, 1, 1, 0, 0, 97, 5499.00, 4799.00, 5499, 5499, 0, '【限时限量抢购】Apple产品年中狂欢节,好物尽享,美在智慧!速来 >> 勾选[保障服务][原厂保2年],获得AppleCare+全方位服务计划,原厂延保售后无忧。', '', 5499.00, 100, 0, '', 0.00, 0, '1,2,3', '', '', '', '', '', '', '
', '2020-05-04 15:12:54', '2020-05-30 00:00:00', 0, 1, '苹果', '手机通讯'); -INSERT INTO `pms_product` VALUES (30, 50, 8, 0, 1, 'HLA海澜之家简约动物印花短袖T恤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5ad83a4fN6ff67ecd.jpg!cc_350x449.jpg', 'HNTBJ2E042A', 0, 1, 1, 1, 0, 0, 0, 98.00, NULL, 0, 0, 0, '2018夏季新品微弹舒适新款短T男生 6月6日-6月20日,满300减30,参与互动赢百元礼券,立即分享赢大奖', '', 98.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤'); -INSERT INTO `pms_product` VALUES (31, 50, 8, 0, 1, 'HLA海澜之家蓝灰花纹圆领针织布短袖T恤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5ac98b64N70acd82f.jpg!cc_350x449.jpg', 'HNTBJ2E080A', 0, 1, 0, 0, 0, 0, 0, 98.00, NULL, 0, 0, 0, '2018夏季新品短袖T恤男HNTBJ2E080A 蓝灰花纹80 175/92A/L80A 蓝灰花纹80 175/92A/L', '', 98.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤'); -INSERT INTO `pms_product` VALUES (32, 50, 8, 0, 1, 'HLA海澜之家短袖T恤男基础款', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a51eb88Na4797877.jpg', 'HNTBJ2E153A', 0, 1, 0, 0, 0, 0, 0, 68.00, NULL, 0, 0, 0, 'HLA海澜之家短袖T恤男基础款简约圆领HNTBJ2E153A藏青(F3)175/92A(50)', '', 68.00, 100, 0, '', 0.00, 0, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤'); -INSERT INTO `pms_product` VALUES (33, 6, 35, 0, 12, '小米(MI)小米电视4A ', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b02804dN66004d73.jpg', '4609652', 0, 1, 0, 0, 0, 0, 0, 2499.00, NULL, 0, 0, 0, '小米(MI)小米电视4A 55英寸 L55M5-AZ/L55M5-AD 2GB+8GB HDR 4K超高清 人工智能网络液晶平板电视', '', 2499.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '电视'); -INSERT INTO `pms_product` VALUES (34, 6, 35, 0, 12, '小米(MI)小米电视4A 65英寸', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b028530N51eee7d4.jpg', '4609660', 0, 1, 0, 0, 0, 0, 0, 3999.00, NULL, 0, 0, 0, ' L65M5-AZ/L65M5-AD 2GB+8GB HDR 4K超高清 人工智能网络液晶平板电视', '', 3999.00, 100, 0, '', 0.00, 0, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '电视'); -INSERT INTO `pms_product` VALUES (35, 58, 29, 0, 11, '耐克NIKE 男子 休闲鞋 ROSHE RUN 运动鞋 511881-010黑色41码', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b235bb9Nf606460b.jpg', '6799342', 0, 1, 0, 0, 0, 0, 0, 369.00, NULL, 0, 0, 0, '耐克NIKE 男子 休闲鞋 ROSHE RUN 运动鞋 511881-010黑色41码', '', 369.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, 'NIKE', '男鞋'); -INSERT INTO `pms_product` VALUES (36, 58, 29, 0, 11, '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '6799345', 0, 1, 1, 1, 0, 0, 0, 499.00, NULL, 0, 0, 0, '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '', 499.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, 'NIKE', '男鞋'); -INSERT INTO `pms_product` VALUES (37, 51, 19, 0, 3, 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', '100038005189', 0, 1, 0, 0, 0, 200, 0, 5999.00, NULL, 0, 0, 0, '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '', 5999.00, 1000, 0, '', 208.00, 0, '1,2,3', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', '', '', '', '
', NULL, NULL, 0, 0, '苹果', '手机通讯'); -INSERT INTO `pms_product` VALUES (38, 51, 53, 0, 3, 'Apple iPad 10.9英寸平板电脑 2022年款', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', '100044025833', 0, 1, 0, 0, 0, 0, 0, 3599.00, NULL, 0, 0, 0, '【11.11大爱超大爱】iPad9代限量抢购,价格优惠,更享以旧换新至高补贴325元!!快来抢购吧!! ', '', 3599.00, 1000, 0, '', 0.00, 0, '1,2,3', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_002.jpg', '', '', '', '
', NULL, NULL, 0, 0, '苹果', '平板电脑'); -INSERT INTO `pms_product` VALUES (39, 6, 54, 0, 13, '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '100023207945', 0, 1, 0, 1, 0, 0, 0, 5599.00, NULL, 0, 0, 0, '【双十一大促来袭】指定型号至高优惠1000,以旧换新至高补贴1000元,晒单赢好礼', '', 5599.00, 500, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_002.jpg', '', '', '', '
\n
\n
 
\n
 
\n
\n
 
\n
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
', NULL, NULL, 0, 0, '小米', '笔记本'); -INSERT INTO `pms_product` VALUES (40, 6, 19, 0, 3, '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '100027789721', 0, 1, 0, 1, 0, 0, 0, 2999.00, NULL, 0, 0, 0, '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '', 2999.00, 500, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_02.jpg', '', '', '', '

', NULL, NULL, 0, 4, '小米', '手机通讯'); -INSERT INTO `pms_product` VALUES (41, 6, 19, 0, 3, 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', '100035246702', 0, 1, 0, 0, 0, 0, 0, 2099.00, NULL, 0, 0, 0, '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '', 2099.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_02.jpg', '', '', '', '

', NULL, NULL, 0, 0, '小米', '手机通讯'); -INSERT INTO `pms_product` VALUES (42, 3, 19, 0, 3, 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', '100035295081', 0, 1, 0, 0, 0, 0, 0, 4999.00, NULL, 0, 0, 0, '【华为Mate50新品上市】内置66W华为充电套装,超光变XMAGE影像,北斗卫星消息,鸿蒙操作系统3.0!立即抢购!华为新品可持续计划,猛戳》 ', '', 4999.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_02.jpg', '', '', '', '

', NULL, NULL, 0, 0, '华为', '手机通讯'); -INSERT INTO `pms_product` VALUES (43, 1, 39, 0, 14, '万和(Vanward)燃气热水器天然气家用四重防冻直流变频节能全新升级增压水伺服恒温高抗风', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_13L_01.png', '10044060351752', 0, 1, 0, 0, 0, 0, 0, 1799.00, NULL, 0, 0, 0, '【家电11.11享低价,抢到手价不高于1199】【发布种草秀享好礼!同价11.11买贵补差】爆款超一级能效零冷水】 ', '', 1799.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_16L_01.jpg', '', '', '', '

', NULL, NULL, 0, 0, '万和', '厨卫大电'); -INSERT INTO `pms_product` VALUES (44, 2, 55, 0, 15, '三星(SAMSUNG)500GB SSD固态硬盘 M.2接口(NVMe协议)', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', '100018768480', 0, 1, 0, 0, 0, 0, 0, 369.00, NULL, 0, 0, 0, '【满血无缓存!进店抽百元E卡,部分型号白条三期免息】兼具速度与可靠性!读速高达3500MB/s,全功率模式!点击 ', '', 369.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_01.jpg', '', '', '', '

', NULL, NULL, 0, 0, '三星', '硬盘'); -INSERT INTO `pms_product` VALUES (45, 21, 19, 0, 3, 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', '10052147850350', 0, 1, 0, 0, 0, 0, 0, 2299.00, 999.00, 0, 0, 0, '【11.11提前购机享价保,好货不用等,系统申请一键价保补差!】【Reno8Pro爆款优惠】 ', '', 2299.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_02.jpg', '', '', '', '

', '2022-11-09 16:15:50', '2022-11-25 00:00:00', 0, 4, 'OPPO', '手机通讯'); - --- ---------------------------- --- Table structure for pms_product_attribute --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_attribute`; -CREATE TABLE `pms_product_attribute` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_attribute_category_id` bigint(20) NULL DEFAULT NULL, - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `select_type` int(1) NULL DEFAULT NULL COMMENT '属性选择类型:0->唯一;1->单选;2->多选', - `input_type` int(1) NULL DEFAULT NULL COMMENT '属性录入方式:0->手工录入;1->从列表中选取', - `input_list` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '可选值列表,以逗号隔开', - `sort` int(11) NULL DEFAULT NULL COMMENT '排序字段:最高的可以单独上传图片', - `filter_type` int(1) NULL DEFAULT NULL COMMENT '分类筛选样式:1->普通;1->颜色', - `search_type` int(1) NULL DEFAULT NULL COMMENT '检索类型;0->不需要进行检索;1->关键字检索;2->范围检索', - `related_status` int(1) NULL DEFAULT NULL COMMENT '相同属性产品是否关联;0->不关联;1->关联', - `hand_add_status` int(1) NULL DEFAULT NULL COMMENT '是否支持手动新增;0->不支持;1->支持', - `type` int(1) NULL DEFAULT NULL COMMENT '属性的类型;0->规格;1->参数', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 74 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品属性参数表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_attribute --- ---------------------------- -INSERT INTO `pms_product_attribute` VALUES (1, 1, '尺寸', 2, 1, 'M,X,XL,2XL,3XL,4XL', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (7, 1, '颜色', 2, 1, '黑色,红色,白色,粉色', 100, 0, 0, 0, 1, 0); -INSERT INTO `pms_product_attribute` VALUES (13, 0, '上市年份', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (14, 0, '上市年份1', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (15, 0, '上市年份2', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (16, 0, '上市年份3', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (17, 0, '上市年份4', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (18, 0, '上市年份5', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (19, 0, '适用对象', 1, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (20, 0, '适用对象1', 2, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (21, 0, '适用对象3', 2, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (24, 1, '商品编号', 1, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (25, 1, '适用季节', 1, 1, '春季,夏季,秋季,冬季', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (32, 2, '适用人群', 0, 1, '老年,青年,中年', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (33, 2, '风格', 0, 1, '嘻哈风格,基础大众,商务正装', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (35, 2, '颜色', 0, 0, '', 100, 0, 0, 0, 1, 0); -INSERT INTO `pms_product_attribute` VALUES (37, 1, '适用人群', 1, 1, '儿童,青年,中年,老年', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (38, 1, '上市时间', 1, 1, '2017年秋,2017年冬,2018年春,2018年夏', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (39, 1, '袖长', 1, 1, '短袖,长袖,中袖', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (40, 2, '尺码', 0, 1, '29,30,31,32,33,34', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (41, 2, '适用场景', 0, 1, '居家,运动,正装', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (42, 2, '上市时间', 0, 1, '2018年春,2018年夏', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (43, 3, '颜色', 0, 0, '', 100, 0, 0, 0, 1, 0); -INSERT INTO `pms_product_attribute` VALUES (44, 3, '容量', 0, 1, '16G,32G,64G,128G,256G,512G', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (45, 3, '屏幕尺寸', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (46, 3, '网络', 0, 1, '3G,4G,5G,WLAN', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (47, 3, '系统', 0, 1, 'Android,IOS', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (48, 3, '电池容量', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (49, 11, '颜色', 0, 1, '红色,蓝色,绿色', 0, 1, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (50, 11, '尺寸', 0, 1, '38,39,40', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (51, 11, '风格', 0, 1, '夏季,秋季', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (52, 12, '尺寸', 0, 1, '50英寸,65英寸,70英寸', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (53, 12, '内存', 0, 1, '8G,16G,32G', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (54, 12, '商品编号', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (55, 12, '商品毛重', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (56, 12, '商品产地', 0, 1, '中国大陆,其他', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (57, 12, '电视类型', 0, 1, '大屏,教育电视,4K超清', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (58, 13, '颜色', 0, 0, '', 0, 0, 0, 0, 1, 0); -INSERT INTO `pms_product_attribute` VALUES (59, 13, '版本', 0, 1, 'R7 16G 512,R5 16G 512,I5 16G 512,I7 16G 512', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (60, 13, '屏幕尺寸', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (61, 13, '屏幕分辨率', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (62, 13, 'CPU型号', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (63, 14, '系列', 0, 0, '', 0, 0, 0, 0, 1, 0); -INSERT INTO `pms_product_attribute` VALUES (64, 14, '上市时间', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (65, 14, '毛重', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (66, 14, '额定功率', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (67, 15, '颜色', 0, 0, '', 0, 0, 0, 0, 1, 0); -INSERT INTO `pms_product_attribute` VALUES (68, 15, '版本', 0, 1, '512GB,1TB', 0, 0, 0, 0, 0, 0); -INSERT INTO `pms_product_attribute` VALUES (69, 15, '系列', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (70, 15, '型号', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (71, 15, '闪存类型', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (72, 15, '顺序读速', 0, 0, '', 0, 0, 0, 0, 0, 1); -INSERT INTO `pms_product_attribute` VALUES (73, 15, '顺序写入', 0, 0, '', 0, 0, 0, 0, 0, 1); - --- ---------------------------- --- Table structure for pms_product_attribute_category --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_attribute_category`; -CREATE TABLE `pms_product_attribute_category` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `attribute_count` int(11) NULL DEFAULT 0 COMMENT '属性数量', - `param_count` int(11) NULL DEFAULT 0 COMMENT '参数数量', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品属性分类表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_attribute_category --- ---------------------------- -INSERT INTO `pms_product_attribute_category` VALUES (1, '服装-T恤', 2, 5); -INSERT INTO `pms_product_attribute_category` VALUES (2, '服装-裤装', 2, 4); -INSERT INTO `pms_product_attribute_category` VALUES (3, '手机数码-手机通讯', 2, 4); -INSERT INTO `pms_product_attribute_category` VALUES (4, '配件', 0, 0); -INSERT INTO `pms_product_attribute_category` VALUES (5, '居家', 0, 0); -INSERT INTO `pms_product_attribute_category` VALUES (6, '洗护', 0, 0); -INSERT INTO `pms_product_attribute_category` VALUES (10, '测试分类', 0, 0); -INSERT INTO `pms_product_attribute_category` VALUES (11, '服装-鞋帽', 3, 0); -INSERT INTO `pms_product_attribute_category` VALUES (12, '家用电器-电视', 2, 4); -INSERT INTO `pms_product_attribute_category` VALUES (13, '电脑办公-笔记本', 2, 3); -INSERT INTO `pms_product_attribute_category` VALUES (14, '家用电器-厨卫大电', 1, 3); -INSERT INTO `pms_product_attribute_category` VALUES (15, '电脑办公-硬盘', 2, 5); - --- ---------------------------- --- Table structure for pms_product_attribute_value --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_attribute_value`; -CREATE TABLE `pms_product_attribute_value` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `product_attribute_id` bigint(20) NULL DEFAULT NULL, - `value` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 517 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '存储产品参数信息的表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_attribute_value --- ---------------------------- -INSERT INTO `pms_product_attribute_value` VALUES (1, 9, 1, 'X'); -INSERT INTO `pms_product_attribute_value` VALUES (2, 10, 1, 'X'); -INSERT INTO `pms_product_attribute_value` VALUES (3, 11, 1, 'X'); -INSERT INTO `pms_product_attribute_value` VALUES (4, 12, 1, 'X'); -INSERT INTO `pms_product_attribute_value` VALUES (5, 13, 1, 'X'); -INSERT INTO `pms_product_attribute_value` VALUES (6, 14, 1, 'X'); -INSERT INTO `pms_product_attribute_value` VALUES (7, 18, 1, 'X'); -INSERT INTO `pms_product_attribute_value` VALUES (8, 7, 1, 'X'); -INSERT INTO `pms_product_attribute_value` VALUES (9, 7, 1, 'XL'); -INSERT INTO `pms_product_attribute_value` VALUES (10, 7, 1, 'XXL'); -INSERT INTO `pms_product_attribute_value` VALUES (11, 22, 7, 'x,xx'); -INSERT INTO `pms_product_attribute_value` VALUES (12, 22, 24, 'no110'); -INSERT INTO `pms_product_attribute_value` VALUES (13, 22, 25, '春季'); -INSERT INTO `pms_product_attribute_value` VALUES (14, 22, 37, '青年'); -INSERT INTO `pms_product_attribute_value` VALUES (15, 22, 38, '2018年春'); -INSERT INTO `pms_product_attribute_value` VALUES (16, 22, 39, '长袖'); -INSERT INTO `pms_product_attribute_value` VALUES (124, 23, 7, '米白色,浅黄色'); -INSERT INTO `pms_product_attribute_value` VALUES (125, 23, 24, 'no1098'); -INSERT INTO `pms_product_attribute_value` VALUES (126, 23, 25, '春季'); -INSERT INTO `pms_product_attribute_value` VALUES (127, 23, 37, '青年'); -INSERT INTO `pms_product_attribute_value` VALUES (128, 23, 38, '2018年春'); -INSERT INTO `pms_product_attribute_value` VALUES (129, 23, 39, '长袖'); -INSERT INTO `pms_product_attribute_value` VALUES (130, 1, 13, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (131, 1, 14, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (132, 1, 15, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (133, 1, 16, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (134, 1, 17, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (135, 1, 18, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (136, 1, 19, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (137, 1, 20, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (138, 1, 21, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (139, 2, 13, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (140, 2, 14, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (141, 2, 15, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (142, 2, 16, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (143, 2, 17, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (144, 2, 18, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (145, 2, 19, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (146, 2, 20, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (147, 2, 21, NULL); -INSERT INTO `pms_product_attribute_value` VALUES (243, 30, 7, '蓝色,白色'); -INSERT INTO `pms_product_attribute_value` VALUES (244, 30, 24, 'HNTBJ2E042A'); -INSERT INTO `pms_product_attribute_value` VALUES (245, 30, 25, '夏季'); -INSERT INTO `pms_product_attribute_value` VALUES (246, 30, 37, '青年'); -INSERT INTO `pms_product_attribute_value` VALUES (247, 30, 38, '2018年夏'); -INSERT INTO `pms_product_attribute_value` VALUES (248, 30, 39, '短袖'); -INSERT INTO `pms_product_attribute_value` VALUES (249, 31, 7, '浅灰色,深灰色'); -INSERT INTO `pms_product_attribute_value` VALUES (250, 31, 24, 'HNTBJ2E080A'); -INSERT INTO `pms_product_attribute_value` VALUES (251, 31, 25, '夏季'); -INSERT INTO `pms_product_attribute_value` VALUES (252, 31, 37, '青年'); -INSERT INTO `pms_product_attribute_value` VALUES (253, 31, 38, '2018年夏'); -INSERT INTO `pms_product_attribute_value` VALUES (254, 31, 39, '短袖'); -INSERT INTO `pms_product_attribute_value` VALUES (255, 32, 7, '黑色,白色'); -INSERT INTO `pms_product_attribute_value` VALUES (256, 32, 24, 'HNTBJ2E153A'); -INSERT INTO `pms_product_attribute_value` VALUES (257, 32, 25, '夏季'); -INSERT INTO `pms_product_attribute_value` VALUES (258, 32, 37, '青年'); -INSERT INTO `pms_product_attribute_value` VALUES (259, 32, 38, '2018年夏'); -INSERT INTO `pms_product_attribute_value` VALUES (260, 32, 39, '短袖'); -INSERT INTO `pms_product_attribute_value` VALUES (265, 33, 54, '4609652'); -INSERT INTO `pms_product_attribute_value` VALUES (266, 33, 55, '28.6kg'); -INSERT INTO `pms_product_attribute_value` VALUES (267, 33, 56, '中国大陆'); -INSERT INTO `pms_product_attribute_value` VALUES (268, 33, 57, '大屏'); -INSERT INTO `pms_product_attribute_value` VALUES (269, 34, 54, '4609660'); -INSERT INTO `pms_product_attribute_value` VALUES (270, 34, 55, '30.8kg'); -INSERT INTO `pms_product_attribute_value` VALUES (271, 34, 56, '中国大陆'); -INSERT INTO `pms_product_attribute_value` VALUES (272, 34, 57, '4K超清'); -INSERT INTO `pms_product_attribute_value` VALUES (288, 27, 43, '黑色,蓝色'); -INSERT INTO `pms_product_attribute_value` VALUES (289, 27, 45, '5.8'); -INSERT INTO `pms_product_attribute_value` VALUES (290, 27, 46, '4G'); -INSERT INTO `pms_product_attribute_value` VALUES (291, 27, 47, 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES (292, 27, 48, '3000ml'); -INSERT INTO `pms_product_attribute_value` VALUES (303, 28, 43, '金色,银色'); -INSERT INTO `pms_product_attribute_value` VALUES (304, 28, 45, '5.0'); -INSERT INTO `pms_product_attribute_value` VALUES (305, 28, 46, '4G'); -INSERT INTO `pms_product_attribute_value` VALUES (306, 28, 47, 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES (307, 28, 48, '2800ml'); -INSERT INTO `pms_product_attribute_value` VALUES (308, 29, 43, '金色,银色'); -INSERT INTO `pms_product_attribute_value` VALUES (309, 29, 45, '4.7'); -INSERT INTO `pms_product_attribute_value` VALUES (310, 29, 46, '4G'); -INSERT INTO `pms_product_attribute_value` VALUES (311, 29, 47, 'IOS'); -INSERT INTO `pms_product_attribute_value` VALUES (312, 29, 48, '1960ml'); -INSERT INTO `pms_product_attribute_value` VALUES (338, 37, 43, '午夜色,星光色,紫色,蓝色'); -INSERT INTO `pms_product_attribute_value` VALUES (339, 37, 45, '6.1英寸'); -INSERT INTO `pms_product_attribute_value` VALUES (340, 37, 46, '5G'); -INSERT INTO `pms_product_attribute_value` VALUES (341, 37, 47, 'IOS'); -INSERT INTO `pms_product_attribute_value` VALUES (342, 37, 48, '3000毫安'); -INSERT INTO `pms_product_attribute_value` VALUES (443, 38, 43, '银色,蓝色'); -INSERT INTO `pms_product_attribute_value` VALUES (444, 38, 45, '10.9英寸'); -INSERT INTO `pms_product_attribute_value` VALUES (445, 38, 46, 'WLAN'); -INSERT INTO `pms_product_attribute_value` VALUES (446, 38, 47, 'IOS'); -INSERT INTO `pms_product_attribute_value` VALUES (447, 38, 48, '6000毫安'); -INSERT INTO `pms_product_attribute_value` VALUES (448, 39, 58, '新小米Pro 14英寸 2.8K屏,新Redmi Pro 15英寸 3.2K屏'); -INSERT INTO `pms_product_attribute_value` VALUES (449, 39, 60, '15.6英寸'); -INSERT INTO `pms_product_attribute_value` VALUES (450, 39, 61, '3200*2000'); -INSERT INTO `pms_product_attribute_value` VALUES (451, 39, 62, 'R5 6600H'); -INSERT INTO `pms_product_attribute_value` VALUES (452, 41, 43, '墨羽,银迹'); -INSERT INTO `pms_product_attribute_value` VALUES (453, 41, 45, '6.67英寸'); -INSERT INTO `pms_product_attribute_value` VALUES (454, 41, 46, '5G'); -INSERT INTO `pms_product_attribute_value` VALUES (455, 41, 47, 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES (456, 41, 48, '5500mAh'); -INSERT INTO `pms_product_attribute_value` VALUES (457, 42, 43, '曜金黑,冰霜银'); -INSERT INTO `pms_product_attribute_value` VALUES (458, 42, 45, '6.7英寸'); -INSERT INTO `pms_product_attribute_value` VALUES (459, 42, 46, '5G'); -INSERT INTO `pms_product_attribute_value` VALUES (460, 42, 47, 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES (461, 42, 48, '4460mAh'); -INSERT INTO `pms_product_attribute_value` VALUES (462, 43, 63, 'JSQ25-565W13【13升】【恒温旗舰款】,JSQ30-565W16【16升】【恒温旗舰款】'); -INSERT INTO `pms_product_attribute_value` VALUES (463, 43, 64, '2021-05'); -INSERT INTO `pms_product_attribute_value` VALUES (464, 43, 65, '15.5kg'); -INSERT INTO `pms_product_attribute_value` VALUES (465, 43, 66, '30w'); -INSERT INTO `pms_product_attribute_value` VALUES (466, 44, 67, '新品980|NVMe PCIe3.0*4,980 PRO|NVMe PCIe 4.0'); -INSERT INTO `pms_product_attribute_value` VALUES (467, 44, 69, '980'); -INSERT INTO `pms_product_attribute_value` VALUES (468, 44, 70, 'MZ-V8V500BW'); -INSERT INTO `pms_product_attribute_value` VALUES (469, 44, 71, 'TLC'); -INSERT INTO `pms_product_attribute_value` VALUES (470, 44, 72, '3100MB/s'); -INSERT INTO `pms_product_attribute_value` VALUES (471, 44, 73, '2600MB/s'); -INSERT INTO `pms_product_attribute_value` VALUES (472, 45, 43, '鸢尾紫,晴空蓝'); -INSERT INTO `pms_product_attribute_value` VALUES (473, 45, 45, '6.43英寸'); -INSERT INTO `pms_product_attribute_value` VALUES (474, 45, 46, '5G'); -INSERT INTO `pms_product_attribute_value` VALUES (475, 45, 47, 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES (476, 45, 48, '4500mAh'); -INSERT INTO `pms_product_attribute_value` VALUES (477, 40, 43, '黑色,蓝色'); -INSERT INTO `pms_product_attribute_value` VALUES (478, 40, 45, '6.73英寸'); -INSERT INTO `pms_product_attribute_value` VALUES (479, 40, 46, '5G'); -INSERT INTO `pms_product_attribute_value` VALUES (480, 40, 47, 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES (481, 40, 48, '5160mAh'); -INSERT INTO `pms_product_attribute_value` VALUES (512, 26, 43, '金色,银色'); -INSERT INTO `pms_product_attribute_value` VALUES (513, 26, 45, '5.0'); -INSERT INTO `pms_product_attribute_value` VALUES (514, 26, 46, '4G'); -INSERT INTO `pms_product_attribute_value` VALUES (515, 26, 47, 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES (516, 26, 48, '3000'); - --- ---------------------------- --- Table structure for pms_product_category --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_category`; -CREATE TABLE `pms_product_category` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '上机分类的编号:0表示一级分类', - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `level` int(1) NULL DEFAULT NULL COMMENT '分类级别:0->1级;1->2级', - `product_count` int(11) NULL DEFAULT NULL, - `product_unit` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `nav_status` int(1) NULL DEFAULT NULL COMMENT '是否显示在导航栏:0->不显示;1->显示', - `show_status` int(1) NULL DEFAULT NULL COMMENT '显示状态:0->不显示;1->显示', - `sort` int(11) NULL DEFAULT NULL, - `icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标', - `keywords` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `description` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '描述', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 56 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品分类' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_category --- ---------------------------- -INSERT INTO `pms_product_category` VALUES (1, 0, '服装', 0, 100, '件', 1, 1, 1, NULL, '服装', '服装分类'); -INSERT INTO `pms_product_category` VALUES (2, 0, '手机数码', 0, 100, '件', 1, 1, 1, NULL, '手机数码', '手机数码'); -INSERT INTO `pms_product_category` VALUES (3, 0, '家用电器', 0, 100, '件', 1, 1, 1, NULL, '家用电器', '家用电器'); -INSERT INTO `pms_product_category` VALUES (4, 0, '家具家装', 0, 100, '件', 1, 1, 1, NULL, '家具家装', '家具家装'); -INSERT INTO `pms_product_category` VALUES (5, 0, '汽车用品', 0, 100, '件', 1, 1, 1, NULL, '汽车用品', '汽车用品'); -INSERT INTO `pms_product_category` VALUES (7, 1, '外套', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac4780cN6087feb5.jpg', '外套', '外套'); -INSERT INTO `pms_product_category` VALUES (8, 1, 'T恤', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac47ffaN8a7b2e14.png', 'T恤', 'T恤'); -INSERT INTO `pms_product_category` VALUES (9, 1, '休闲裤', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac47845N7374a31d.jpg', '休闲裤', '休闲裤'); -INSERT INTO `pms_product_category` VALUES (10, 1, '牛仔裤', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac47841Nff658599.jpg', '牛仔裤', '牛仔裤'); -INSERT INTO `pms_product_category` VALUES (11, 1, '衬衫', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac48007Nb30b2118.jpg', '衬衫', '衬衫分类'); -INSERT INTO `pms_product_category` VALUES (13, 12, '家电子分类1', 1, 1, 'string', 0, 1, 0, 'string', 'string', 'string'); -INSERT INTO `pms_product_category` VALUES (14, 12, '家电子分类2', 1, 1, 'string', 0, 1, 0, 'string', 'string', 'string'); -INSERT INTO `pms_product_category` VALUES (19, 2, '手机通讯', 1, 0, '件', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac48d27N3f5bb821.jpg', '手机通讯', '手机通讯'); -INSERT INTO `pms_product_category` VALUES (29, 1, '男鞋', 1, 0, '', 0, 0, 0, '', '', ''); -INSERT INTO `pms_product_category` VALUES (30, 2, '手机配件', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac48672N11cf61fe.jpg', '手机配件', '手机配件'); -INSERT INTO `pms_product_category` VALUES (31, 2, '摄影摄像', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5a1679f2Nc2f659b6.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (32, 2, '影音娱乐', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5a167859N01d8198b.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (33, 2, '数码配件', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5a1676e9N1ba70a81.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (34, 2, '智能设备', 1, 0, '', 0, 0, 0, '', '', ''); -INSERT INTO `pms_product_category` VALUES (35, 3, '电视', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f71eN25360979.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (36, 3, '空调', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f6f6Ndfe746aa.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (37, 3, '洗衣机', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f6eaN9ec936de.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (38, 3, '冰箱', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f6c5Ne56d7e26.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (39, 3, '厨卫大电', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f369N6a55ff3f.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (40, 3, '厨房小电', 1, 0, '', 0, 0, 0, '', '', ''); -INSERT INTO `pms_product_category` VALUES (41, 3, '生活电器', 1, 0, '', 0, 0, 0, '', '', ''); -INSERT INTO `pms_product_category` VALUES (42, 3, '个护健康', 1, 0, '', 0, 0, 0, '', '', ''); -INSERT INTO `pms_product_category` VALUES (43, 4, '厨房卫浴', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1eb12cN5ab932bb.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (44, 4, '灯饰照明', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1eb115Na5705672.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (45, 4, '五金工具', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a28e743Nf6d99998.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (46, 4, '卧室家具', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1eb096N6326e0bd.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (47, 4, '客厅家具', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1eb080N38c2e7b7.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (48, 5, '全新整车', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/ebe31b9cc535e122.png', '', ''); -INSERT INTO `pms_product_category` VALUES (49, 5, '车载电器', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1fb8d2N53bbd2ba.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (50, 5, '维修保养', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1fb8baNbe801af8.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (51, 5, '汽车装饰', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a28ae20N34461e66.jpg', '', ''); -INSERT INTO `pms_product_category` VALUES (52, 0, '电脑办公', 0, 0, '件', 1, 1, 1, '', '电脑办公', '电脑办公'); -INSERT INTO `pms_product_category` VALUES (53, 52, '平板电脑', 1, 0, '件', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/pad_category_01.jpg', '平板电脑', '平板电脑'); -INSERT INTO `pms_product_category` VALUES (54, 52, '笔记本', 1, 0, '件', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/computer_category_01.jpg', '笔记本', '笔记本'); -INSERT INTO `pms_product_category` VALUES (55, 52, '硬盘', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/ssd_category_01.jpg', '硬盘', ''); - --- ---------------------------- --- Table structure for pms_product_category_attribute_relation --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_category_attribute_relation`; -CREATE TABLE `pms_product_category_attribute_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_category_id` bigint(20) NULL DEFAULT NULL, - `product_attribute_id` bigint(20) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_category_attribute_relation --- ---------------------------- -INSERT INTO `pms_product_category_attribute_relation` VALUES (1, 24, 24); -INSERT INTO `pms_product_category_attribute_relation` VALUES (5, 26, 24); -INSERT INTO `pms_product_category_attribute_relation` VALUES (7, 28, 24); -INSERT INTO `pms_product_category_attribute_relation` VALUES (9, 25, 24); -INSERT INTO `pms_product_category_attribute_relation` VALUES (10, 25, 25); - --- ---------------------------- --- Table structure for pms_product_full_reduction --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_full_reduction`; -CREATE TABLE `pms_product_full_reduction` ( - `id` bigint(11) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `full_price` decimal(10, 2) NULL DEFAULT NULL, - `reduce_price` decimal(10, 2) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 148 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品满减表(只针对同商品)' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_full_reduction --- ---------------------------- -INSERT INTO `pms_product_full_reduction` VALUES (1, 7, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (2, 8, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (3, 9, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (4, 10, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (5, 11, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (6, 12, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (7, 13, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (8, 14, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (9, 18, 100.00, 20.00); -INSERT INTO `pms_product_full_reduction` VALUES (10, 7, 200.00, 50.00); -INSERT INTO `pms_product_full_reduction` VALUES (11, 7, 300.00, 100.00); -INSERT INTO `pms_product_full_reduction` VALUES (14, 22, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (16, 24, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (34, 23, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (78, 36, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (79, 35, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (83, 30, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (84, 31, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (85, 32, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (87, 33, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (88, 34, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (93, 27, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (96, 28, 500.00, 50.00); -INSERT INTO `pms_product_full_reduction` VALUES (97, 28, 1000.00, 120.00); -INSERT INTO `pms_product_full_reduction` VALUES (98, 29, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (104, 37, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (126, 38, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (127, 39, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (128, 41, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (129, 42, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (130, 43, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (131, 44, 0.00, 0.00); -INSERT INTO `pms_product_full_reduction` VALUES (132, 45, 2000.00, 100.00); -INSERT INTO `pms_product_full_reduction` VALUES (133, 40, 2000.00, 200.00); -INSERT INTO `pms_product_full_reduction` VALUES (146, 26, 3000.00, 300.00); -INSERT INTO `pms_product_full_reduction` VALUES (147, 26, 5000.00, 500.00); - --- ---------------------------- --- Table structure for pms_product_ladder --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_ladder`; -CREATE TABLE `pms_product_ladder` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `count` int(11) NULL DEFAULT NULL COMMENT '满足的商品数量', - `discount` decimal(10, 2) NULL DEFAULT NULL COMMENT '折扣', - `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '折后价格', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 148 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品阶梯价格表(只针对同商品)' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_ladder --- ---------------------------- -INSERT INTO `pms_product_ladder` VALUES (1, 7, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (2, 8, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (3, 9, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (4, 10, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (5, 11, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (6, 12, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (7, 13, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (8, 14, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (12, 18, 3, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (14, 7, 4, 0.60, 0.00); -INSERT INTO `pms_product_ladder` VALUES (15, 7, 5, 0.50, 0.00); -INSERT INTO `pms_product_ladder` VALUES (18, 22, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (20, 24, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (38, 23, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (83, 36, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (84, 35, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (88, 30, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (89, 31, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (90, 32, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (92, 33, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (93, 34, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (99, 27, 2, 0.80, 0.00); -INSERT INTO `pms_product_ladder` VALUES (100, 27, 3, 0.75, 0.00); -INSERT INTO `pms_product_ladder` VALUES (103, 28, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (104, 29, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (110, 37, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (133, 38, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (134, 39, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (135, 41, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (136, 42, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (137, 43, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (138, 44, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (139, 45, 1, 0.70, 0.00); -INSERT INTO `pms_product_ladder` VALUES (140, 40, 0, 0.00, 0.00); -INSERT INTO `pms_product_ladder` VALUES (147, 26, 0, 0.00, 0.00); - --- ---------------------------- --- Table structure for pms_product_operate_log --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_operate_log`; -CREATE TABLE `pms_product_operate_log` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `price_old` decimal(10, 2) NULL DEFAULT NULL, - `price_new` decimal(10, 2) NULL DEFAULT NULL, - `sale_price_old` decimal(10, 2) NULL DEFAULT NULL, - `sale_price_new` decimal(10, 2) NULL DEFAULT NULL, - `gift_point_old` int(11) NULL DEFAULT NULL COMMENT '赠送的积分', - `gift_point_new` int(11) NULL DEFAULT NULL, - `use_point_limit_old` int(11) NULL DEFAULT NULL, - `use_point_limit_new` int(11) NULL DEFAULT NULL, - `operate_man` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人', - `create_time` datetime NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_operate_log --- ---------------------------- - --- ---------------------------- --- Table structure for pms_product_vertify_record --- ---------------------------- -DROP TABLE IF EXISTS `pms_product_vertify_record`; -CREATE TABLE `pms_product_vertify_record` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `vertify_man` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '审核人', - `status` int(1) NULL DEFAULT NULL, - `detail` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '反馈详情', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品审核记录' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_product_vertify_record --- ---------------------------- -INSERT INTO `pms_product_vertify_record` VALUES (1, 1, '2018-04-27 16:36:41', 'test', 1, '验证通过'); -INSERT INTO `pms_product_vertify_record` VALUES (2, 2, '2018-04-27 16:36:41', 'test', 1, '验证通过'); - --- ---------------------------- --- Table structure for pms_sku_stock --- ---------------------------- -DROP TABLE IF EXISTS `pms_sku_stock`; -CREATE TABLE `pms_sku_stock` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `sku_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sku编码', - `price` decimal(10, 2) NULL DEFAULT NULL, - `stock` int(11) NULL DEFAULT 0 COMMENT '库存', - `low_stock` int(11) NULL DEFAULT NULL COMMENT '预警库存', - `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '展示图片', - `sale` int(11) NULL DEFAULT NULL COMMENT '销量', - `promotion_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '单品促销价格', - `lock_stock` int(11) NULL DEFAULT 0 COMMENT '锁定库存', - `sp_data` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品销售属性,json格式', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 243 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'sku的库存' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of pms_sku_stock --- ---------------------------- -INSERT INTO `pms_sku_stock` VALUES (98, 27, '201808270027001', 2699.00, 86, NULL, NULL, NULL, NULL, -24, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (99, 27, '201808270027002', 2999.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (100, 27, '201808270027003', 2699.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (101, 27, '201808270027004', 2999.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (102, 28, '201808270028001', 649.00, 99, NULL, NULL, NULL, NULL, -8, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (103, 28, '201808270028002', 699.00, 99, NULL, NULL, NULL, NULL, -8, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (104, 28, '201808270028003', 649.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (105, 28, '201808270028004', 699.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (106, 29, '201808270029001', 5499.00, 99, NULL, NULL, NULL, 4999.00, -8, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (107, 29, '201808270029002', 6299.00, 100, NULL, NULL, NULL, 5799.00, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (108, 29, '201808270029003', 5499.00, 100, NULL, NULL, NULL, 4999.00, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (109, 29, '201808270029004', 6299.00, 100, NULL, NULL, NULL, 5799.00, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (110, 26, '201806070026001', 3788.00, 487, NULL, NULL, NULL, 3699.00, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (111, 26, '201806070026002', 3999.00, 499, NULL, NULL, NULL, 3899.00, 0, '[{\"key\":\"颜色\",\"value\":\"金色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (112, 26, '201806070026003', 3788.00, 500, NULL, NULL, NULL, 3699.00, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"16G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (113, 26, '201806070026004', 3999.00, 500, NULL, NULL, NULL, 3899.00, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (163, 36, '202002210036001', 100.00, 100, 25, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (164, 36, '202002210036002', 120.00, 98, 20, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (165, 36, '202002210036003', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"39\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (166, 36, '202002210036004', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"39\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (167, 36, '202002210036005', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (168, 36, '202002210036006', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (169, 36, '202002210036007', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"39\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (170, 36, '202002210036008', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"39\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (171, 35, '202002250035001', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (172, 35, '202002250035002', 240.00, 100, 50, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (173, 35, '202002250035003', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"39\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (174, 35, '202002250035004', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"红色\"},{\"key\":\"尺寸\",\"value\":\"39\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (175, 35, '202002250035005', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (176, 35, '202002250035006', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"38\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (177, 35, '202002250035007', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"39\"},{\"key\":\"风格\",\"value\":\"夏季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (178, 35, '202002250035008', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"39\"},{\"key\":\"风格\",\"value\":\"秋季\"}]'); -INSERT INTO `pms_sku_stock` VALUES (179, 30, '202004190030001', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"X\"}]'); -INSERT INTO `pms_sku_stock` VALUES (180, 30, '202004190030002', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"XL\"}]'); -INSERT INTO `pms_sku_stock` VALUES (181, 30, '202004190030003', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"尺寸\",\"value\":\"M\"}]'); -INSERT INTO `pms_sku_stock` VALUES (182, 30, '202004190030004', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"白色\"},{\"key\":\"尺寸\",\"value\":\"X\"}]'); -INSERT INTO `pms_sku_stock` VALUES (183, 30, '202004190030005', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"白色\"},{\"key\":\"尺寸\",\"value\":\"XL\"}]'); -INSERT INTO `pms_sku_stock` VALUES (184, 30, '202004190030006', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"白色\"},{\"key\":\"尺寸\",\"value\":\"M\"}]'); -INSERT INTO `pms_sku_stock` VALUES (185, 31, '202004190031001', 88.00, 80, 10, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"浅灰色\"},{\"key\":\"尺寸\",\"value\":\"X\"}]'); -INSERT INTO `pms_sku_stock` VALUES (186, 31, '202004190031002', 88.00, 80, 10, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"浅灰色\"},{\"key\":\"尺寸\",\"value\":\"XL\"}]'); -INSERT INTO `pms_sku_stock` VALUES (187, 31, '202004190031003', 88.00, 80, 10, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"深灰色\"},{\"key\":\"尺寸\",\"value\":\"X\"}]'); -INSERT INTO `pms_sku_stock` VALUES (188, 31, '202004190031004', 88.00, 80, 10, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"深灰色\"},{\"key\":\"尺寸\",\"value\":\"XL\"}]'); -INSERT INTO `pms_sku_stock` VALUES (189, 32, '202004190032001', 99.00, 100, 10, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"尺寸\",\"value\":\"X\"}]'); -INSERT INTO `pms_sku_stock` VALUES (190, 32, '202004190032002', 99.00, 100, 10, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"尺寸\",\"value\":\"M\"}]'); -INSERT INTO `pms_sku_stock` VALUES (191, 32, '202004190032003', 99.00, 100, 10, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"白色\"},{\"key\":\"尺寸\",\"value\":\"X\"}]'); -INSERT INTO `pms_sku_stock` VALUES (192, 32, '202004190032004', 99.00, 100, 10, NULL, NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"白色\"},{\"key\":\"尺寸\",\"value\":\"M\"}]'); -INSERT INTO `pms_sku_stock` VALUES (193, 33, '202004190033001', 2499.00, 500, 10, NULL, NULL, NULL, 0, '[{\"key\":\"尺寸\",\"value\":\"50英寸\"},{\"key\":\"内存\",\"value\":\"8G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (194, 33, '202004190033002', 2499.00, 500, 10, NULL, NULL, NULL, 0, '[{\"key\":\"尺寸\",\"value\":\"50英寸\"},{\"key\":\"内存\",\"value\":\"16G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (195, 33, '202004190033003', 2499.00, 500, 10, NULL, NULL, NULL, 0, '[{\"key\":\"尺寸\",\"value\":\"65英寸\"},{\"key\":\"内存\",\"value\":\"8G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (196, 33, '202004190033004', 2499.00, 500, 10, NULL, NULL, NULL, 0, '[{\"key\":\"尺寸\",\"value\":\"65英寸\"},{\"key\":\"内存\",\"value\":\"16G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (197, 34, '202004190034001', 3999.00, 500, 10, NULL, NULL, NULL, 0, '[{\"key\":\"尺寸\",\"value\":\"65英寸\"},{\"key\":\"内存\",\"value\":\"16G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (198, 34, '202004190034002', 3999.00, 500, 10, NULL, NULL, NULL, 0, '[{\"key\":\"尺寸\",\"value\":\"65英寸\"},{\"key\":\"内存\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (199, 34, '202004190034003', 3999.00, 500, 10, NULL, NULL, NULL, 0, '[{\"key\":\"尺寸\",\"value\":\"70英寸\"},{\"key\":\"内存\",\"value\":\"16G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (200, 34, '202004190034004', 3999.00, 500, 10, NULL, NULL, NULL, 0, '[{\"key\":\"尺寸\",\"value\":\"70英寸\"},{\"key\":\"内存\",\"value\":\"32G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (201, 37, '202210280037001', 5999.00, 195, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', NULL, NULL, 1, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (202, 37, '202210280037002', 6899.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (203, 37, '202210280037003', 8699.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"午夜色\"},{\"key\":\"容量\",\"value\":\"512G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (204, 37, '202210280037004', 5999.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"星光色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (205, 37, '202210280037005', 6899.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"星光色\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (206, 37, '202210280037006', 8699.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"星光色\"},{\"key\":\"容量\",\"value\":\"512G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (207, 37, '202210280037007', 5999.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"紫色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (208, 37, '202210280037008', 6899.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"紫色\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (209, 37, '202210280037009', 8699.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"紫色\"},{\"key\":\"容量\",\"value\":\"512G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (210, 37, '202210280037010', 5999.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (211, 37, '202210280037011', 6899.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (212, 37, '202210280037012', 8699.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"512G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (213, 38, '202210280038001', 3599.00, 198, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (214, 38, '202210280038002', 4799.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"银色\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (215, 38, '202210280038003', 3599.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_002.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"64G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (216, 38, '202210280038004', 4799.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_002.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (217, 39, '202210280039001', 5999.00, 499, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"新小米Pro 14英寸 2.8K屏\"},{\"key\":\"版本\",\"value\":\"R7 16G 512\"}]'); -INSERT INTO `pms_sku_stock` VALUES (218, 39, '202210280039002', 5599.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"新小米Pro 14英寸 2.8K屏\"},{\"key\":\"版本\",\"value\":\"R5 16G 512\"}]'); -INSERT INTO `pms_sku_stock` VALUES (219, 39, '202210280039003', 5499.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_002.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"新Redmi Pro 15英寸 3.2K屏\"},{\"key\":\"版本\",\"value\":\"R7 16G 512\"}]'); -INSERT INTO `pms_sku_stock` VALUES (220, 39, '202210280039004', 4999.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_002.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"新Redmi Pro 15英寸 3.2K屏\"},{\"key\":\"版本\",\"value\":\"R5 16G 512\"}]'); -INSERT INTO `pms_sku_stock` VALUES (221, 40, '202211040040001', 2999.00, 91, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (222, 40, '202211040040002', 3499.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"黑色\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (223, 40, '202211040040003', 2999.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (224, 40, '202211040040004', 3499.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"蓝色\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (225, 41, '202211040041001', 2099.00, 195, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (226, 41, '202211040041002', 2299.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"墨羽\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (227, 41, '202211040041003', 2099.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"银迹\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (228, 41, '202211040041004', 2299.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"银迹\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (229, 42, '202211040042001', 4999.00, 99, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"曜金黑\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (230, 42, '202211040042002', 5499.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"曜金黑\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (231, 42, '202211040042003', 4999.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"冰霜银\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (232, 42, '202211040042004', 5499.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"冰霜银\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (233, 43, '202211040043001', 1649.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_13L_01.png', NULL, NULL, 0, '[{\"key\":\"系列\",\"value\":\"JSQ25-565W13【13升】【恒温旗舰款】\"}]'); -INSERT INTO `pms_sku_stock` VALUES (234, 43, '202211040043002', 1799.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_13L_01.png', NULL, NULL, 0, '[{\"key\":\"系列\",\"value\":\"JSQ30-565W16【16升】【恒温旗舰款】\"}]'); -INSERT INTO `pms_sku_stock` VALUES (235, 44, '202211080044001', 369.00, 99, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"新品980|NVMe PCIe3.0*4\"},{\"key\":\"版本\",\"value\":\"512GB\"}]'); -INSERT INTO `pms_sku_stock` VALUES (236, 44, '202211080044002', 649.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"新品980|NVMe PCIe3.0*4\"},{\"key\":\"版本\",\"value\":\"1TB\"}]'); -INSERT INTO `pms_sku_stock` VALUES (237, 44, '202211080044003', 549.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"980 PRO|NVMe PCIe 4.0\"},{\"key\":\"版本\",\"value\":\"512GB\"}]'); -INSERT INTO `pms_sku_stock` VALUES (238, 44, '202211080044004', 899.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"980 PRO|NVMe PCIe 4.0\"},{\"key\":\"版本\",\"value\":\"1TB\"}]'); -INSERT INTO `pms_sku_stock` VALUES (239, 45, '202211080045001', 2299.00, 250, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"鸢尾紫\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (240, 45, '202211080045002', 2499.00, 250, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"鸢尾紫\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (241, 45, '202211080045003', 2299.00, 250, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"晴空蓝\"},{\"key\":\"容量\",\"value\":\"128G\"}]'); -INSERT INTO `pms_sku_stock` VALUES (242, 45, '202211080045004', 2499.00, 250, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_02.jpg', NULL, NULL, 0, '[{\"key\":\"颜色\",\"value\":\"晴空蓝\"},{\"key\":\"容量\",\"value\":\"256G\"}]'); - --- ---------------------------- --- Table structure for sms_coupon --- ---------------------------- -DROP TABLE IF EXISTS `sms_coupon`; -CREATE TABLE `sms_coupon` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `type` int(1) NULL DEFAULT NULL COMMENT '优惠券类型;0->全场赠券;1->会员赠券;2->购物赠券;3->注册赠券', - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `platform` int(1) NULL DEFAULT NULL COMMENT '使用平台:0->全部;1->移动;2->PC', - `count` int(11) NULL DEFAULT NULL COMMENT '数量', - `amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '金额', - `per_limit` int(11) NULL DEFAULT NULL COMMENT '每人限领张数', - `min_point` decimal(10, 2) NULL DEFAULT NULL COMMENT '使用门槛;0表示无门槛', - `start_time` datetime NULL DEFAULT NULL, - `end_time` datetime NULL DEFAULT NULL, - `use_type` int(1) NULL DEFAULT NULL COMMENT '使用类型:0->全场通用;1->指定分类;2->指定商品', - `note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', - `publish_count` int(11) NULL DEFAULT NULL COMMENT '发行数量', - `use_count` int(11) NULL DEFAULT NULL COMMENT '已使用数量', - `receive_count` int(11) NULL DEFAULT NULL COMMENT '领取数量', - `enable_time` datetime NULL DEFAULT NULL COMMENT '可以领取的日期', - `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '优惠码', - `member_level` int(1) NULL DEFAULT NULL COMMENT '可领取的会员类型:0->无限时', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优惠券表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_coupon --- ---------------------------- -INSERT INTO `sms_coupon` VALUES (27, 0, '全品类通用券', 0, 94, 10.00, 10, 100.00, '2022-11-08 00:00:00', '2023-11-30 00:00:00', 0, NULL, 100, 0, 6, '2022-11-08 00:00:00', NULL, NULL); -INSERT INTO `sms_coupon` VALUES (28, 0, '手机分类专用券', 0, 995, 100.00, 5, 1000.00, '2022-11-08 00:00:00', '2023-11-30 00:00:00', 1, NULL, 1000, 0, 5, '2022-11-08 00:00:00', NULL, NULL); -INSERT INTO `sms_coupon` VALUES (29, 0, '苹果手机专用券', 0, 998, 600.00, 1, 4000.00, '2022-11-08 00:00:00', '2023-11-30 00:00:00', 2, NULL, 1000, 0, 2, '2022-11-08 00:00:00', NULL, NULL); -INSERT INTO `sms_coupon` VALUES (30, 0, '小米手机专用券', 0, 998, 200.00, 1, 2000.00, '2022-11-08 00:00:00', '2023-11-30 00:00:00', 2, NULL, 1000, 0, 2, '2022-11-08 00:00:00', NULL, NULL); -INSERT INTO `sms_coupon` VALUES (31, 0, '限时优惠券', 0, 999, 20.00, 5, 500.00, '2022-12-01 00:00:00', '2022-12-22 00:00:00', 0, NULL, 1000, 0, 1, '2022-12-23 00:00:00', NULL, NULL); - --- ---------------------------- --- Table structure for sms_coupon_history --- ---------------------------- -DROP TABLE IF EXISTS `sms_coupon_history`; -CREATE TABLE `sms_coupon_history` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `coupon_id` bigint(20) NULL DEFAULT NULL, - `member_id` bigint(20) NULL DEFAULT NULL, - `coupon_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `member_nickname` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '领取人昵称', - `get_type` int(1) NULL DEFAULT NULL COMMENT '获取类型:0->后台赠送;1->主动获取', - `create_time` datetime NULL DEFAULT NULL, - `use_status` int(1) NULL DEFAULT NULL COMMENT '使用状态:0->未使用;1->已使用;2->已过期', - `use_time` datetime NULL DEFAULT NULL COMMENT '使用时间', - `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单编号', - `order_sn` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单号码', - PRIMARY KEY (`id`) USING BTREE, - INDEX `idx_member_id`(`member_id`) USING BTREE, - INDEX `idx_coupon_id`(`coupon_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 53 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优惠券使用、领取历史表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_coupon_history --- ---------------------------- -INSERT INTO `sms_coupon_history` VALUES (37, 30, 1, '7806895974110001', 'windir', 1, '2022-11-09 15:14:29', 1, '2022-11-09 15:14:58', NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (38, 27, 1, '7872472849240001', 'windir', 1, '2022-11-09 15:25:25', 1, '2022-11-09 15:25:38', NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (39, 29, 1, '7876204111480001', 'windir', 1, '2022-11-09 15:26:02', 1, '2022-11-09 15:26:11', NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (40, 27, 1, '7911945030190001', 'windir', 1, '2022-11-09 15:31:59', 0, NULL, NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (41, 28, 1, '8194868687790001', 'windir', 1, '2022-11-09 16:19:09', 1, '2022-11-11 16:12:42', NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (42, 28, 1, '1239565720390001', 'test', 1, '2022-12-21 16:46:36', 1, '2022-12-21 16:53:07', NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (43, 31, 1, '6030247208280001', 'test', 1, '2022-12-23 09:51:42', 0, NULL, NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (44, 28, 1, '6050939443480001', 'test', 1, '2022-12-23 09:55:09', 0, NULL, NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (45, 27, 1, '4182437014580001', 'test', 1, '2023-01-10 17:10:24', 0, NULL, NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (46, 27, 11, '9011281751500011', 'member', 1, '2023-05-11 15:28:33', 0, NULL, NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (47, 28, 11, '9011495851370011', 'member', 1, '2023-05-11 15:28:35', 1, '2023-05-11 15:37:16', NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (48, 30, 11, '9011677197430011', 'member', 1, '2023-05-11 15:28:37', 1, '2023-05-11 15:28:56', NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (49, 27, 11, '9046676666610011', 'member', 1, '2023-05-11 15:34:27', 0, NULL, NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (50, 28, 11, '9046909751910011', 'member', 1, '2023-05-11 15:34:29', 0, NULL, NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (51, 29, 11, '9047077722990011', 'member', 1, '2023-05-11 15:34:31', 0, NULL, NULL, NULL); -INSERT INTO `sms_coupon_history` VALUES (52, 27, 11, '9075818288630011', 'member', 1, '2023-05-11 15:39:18', 0, NULL, NULL, NULL); - --- ---------------------------- --- Table structure for sms_coupon_product_category_relation --- ---------------------------- -DROP TABLE IF EXISTS `sms_coupon_product_category_relation`; -CREATE TABLE `sms_coupon_product_category_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `coupon_id` bigint(20) NULL DEFAULT NULL, - `product_category_id` bigint(20) NULL DEFAULT NULL, - `product_category_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '产品分类名称', - `parent_category_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父分类名称', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优惠券和产品分类关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_coupon_product_category_relation --- ---------------------------- -INSERT INTO `sms_coupon_product_category_relation` VALUES (11, 28, 19, '手机通讯', '手机数码'); - --- ---------------------------- --- Table structure for sms_coupon_product_relation --- ---------------------------- -DROP TABLE IF EXISTS `sms_coupon_product_relation`; -CREATE TABLE `sms_coupon_product_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `coupon_id` bigint(20) NULL DEFAULT NULL, - `product_id` bigint(20) NULL DEFAULT NULL, - `product_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称', - `product_sn` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品编码', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优惠券和产品的关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_coupon_product_relation --- ---------------------------- -INSERT INTO `sms_coupon_product_relation` VALUES (18, 29, 37, 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '100038005189'); -INSERT INTO `sms_coupon_product_relation` VALUES (19, 29, 29, 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', '7437799'); -INSERT INTO `sms_coupon_product_relation` VALUES (21, 30, 41, 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量 墨羽 12GB+256GB 5G智能手机 小米 红米', '100035246702'); -INSERT INTO `sms_coupon_product_relation` VALUES (22, 30, 40, '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '100027789721'); - --- ---------------------------- --- Table structure for sms_flash_promotion --- ---------------------------- -DROP TABLE IF EXISTS `sms_flash_promotion`; -CREATE TABLE `sms_flash_promotion` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `title` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '秒杀时间段名称', - `start_date` date NULL DEFAULT NULL COMMENT '开始日期', - `end_date` date NULL DEFAULT NULL COMMENT '结束日期', - `status` int(1) NULL DEFAULT NULL COMMENT '上下线状态', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '限时购表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_flash_promotion --- ---------------------------- -INSERT INTO `sms_flash_promotion` VALUES (14, '双11特卖活动', '2022-11-09', '2023-12-31', 1, '2022-11-09 14:56:48'); - --- ---------------------------- --- Table structure for sms_flash_promotion_log --- ---------------------------- -DROP TABLE IF EXISTS `sms_flash_promotion_log`; -CREATE TABLE `sms_flash_promotion_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `member_id` int(11) NULL DEFAULT NULL, - `product_id` bigint(20) NULL DEFAULT NULL, - `member_phone` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `product_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `subscribe_time` datetime NULL DEFAULT NULL COMMENT '会员订阅时间', - `send_time` datetime NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '限时购通知记录' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_flash_promotion_log --- ---------------------------- - --- ---------------------------- --- Table structure for sms_flash_promotion_product_relation --- ---------------------------- -DROP TABLE IF EXISTS `sms_flash_promotion_product_relation`; -CREATE TABLE `sms_flash_promotion_product_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', - `flash_promotion_id` bigint(20) NULL DEFAULT NULL, - `flash_promotion_session_id` bigint(20) NULL DEFAULT NULL COMMENT '编号', - `product_id` bigint(20) NULL DEFAULT NULL, - `flash_promotion_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '限时购价格', - `flash_promotion_count` int(11) NULL DEFAULT NULL COMMENT '限时购数量', - `flash_promotion_limit` int(11) NULL DEFAULT NULL COMMENT '每人限购数量', - `sort` int(11) NULL DEFAULT NULL COMMENT '排序', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品限时购与商品关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_flash_promotion_product_relation --- ---------------------------- -INSERT INTO `sms_flash_promotion_product_relation` VALUES (1, 2, 1, 26, 3000.00, 10, 1, 0); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (2, 2, 1, 27, 2000.00, 10, 1, 20); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (3, 2, 1, 28, 599.00, 19, 1, 0); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (4, 2, 1, 29, 4999.00, 10, 1, 100); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (9, 2, 2, 26, 2999.00, 100, 1, 0); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (10, 2, 2, 27, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (11, 2, 2, 28, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (12, 2, 2, 29, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (13, 2, 2, 30, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (14, 2, 3, 31, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (15, 2, 3, 32, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (16, 2, 4, 33, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (17, 2, 4, 34, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (18, 2, 5, 36, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (19, 2, 6, 33, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (20, 2, 6, 34, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (21, 14, 1, 26, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (22, 14, 1, 27, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (23, 14, 1, 28, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (24, 14, 1, 29, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (25, 14, 2, 30, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (26, 14, 2, 31, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (27, 14, 2, 32, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (28, 14, 2, 35, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (29, 14, 3, 33, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (30, 14, 3, 34, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (31, 14, 3, 36, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (32, 14, 3, 37, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (33, 14, 4, 37, 5699.00, 10, 1, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (34, 14, 4, 38, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (35, 14, 4, 39, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (36, 14, 4, 40, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (37, 14, 5, 41, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (38, 14, 5, 42, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (39, 14, 5, 43, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (40, 14, 5, 44, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (41, 14, 5, 45, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (42, 14, 6, 26, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (43, 14, 6, 27, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (44, 14, 6, 28, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (45, 14, 6, 29, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (46, 14, 6, 30, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (47, 14, 7, 31, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (48, 14, 7, 32, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (49, 14, 7, 33, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (50, 14, 7, 34, NULL, NULL, NULL, NULL); -INSERT INTO `sms_flash_promotion_product_relation` VALUES (51, 14, 7, 35, NULL, NULL, NULL, NULL); - --- ---------------------------- --- Table structure for sms_flash_promotion_session --- ---------------------------- -DROP TABLE IF EXISTS `sms_flash_promotion_session`; -CREATE TABLE `sms_flash_promotion_session` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', - `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '场次名称', - `start_time` time NULL DEFAULT NULL COMMENT '每日开始时间', - `end_time` time NULL DEFAULT NULL COMMENT '每日结束时间', - `status` int(1) NULL DEFAULT NULL COMMENT '启用状态:0->不启用;1->启用', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '限时购场次表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_flash_promotion_session --- ---------------------------- -INSERT INTO `sms_flash_promotion_session` VALUES (1, '8:00', '08:00:00', '10:00:00', 1, '2018-11-16 13:22:17'); -INSERT INTO `sms_flash_promotion_session` VALUES (2, '10:00', '10:00:00', '12:00:00', 1, '2018-11-16 13:22:34'); -INSERT INTO `sms_flash_promotion_session` VALUES (3, '12:00', '12:00:00', '14:00:00', 1, '2018-11-16 13:22:37'); -INSERT INTO `sms_flash_promotion_session` VALUES (4, '14:00', '14:00:00', '16:00:00', 1, '2018-11-16 13:22:41'); -INSERT INTO `sms_flash_promotion_session` VALUES (5, '16:00', '16:00:00', '18:00:00', 1, '2018-11-16 13:22:45'); -INSERT INTO `sms_flash_promotion_session` VALUES (6, '18:00', '18:00:00', '20:00:00', 1, '2018-11-16 13:21:34'); -INSERT INTO `sms_flash_promotion_session` VALUES (7, '20:00', '20:00:00', '22:00:00', 1, '2018-11-16 13:22:55'); - --- ---------------------------- --- Table structure for sms_home_advertise --- ---------------------------- -DROP TABLE IF EXISTS `sms_home_advertise`; -CREATE TABLE `sms_home_advertise` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `type` int(1) NULL DEFAULT NULL COMMENT '轮播位置:0->PC首页轮播;1->app首页轮播', - `pic` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `start_time` datetime NULL DEFAULT NULL, - `end_time` datetime NULL DEFAULT NULL, - `status` int(1) NULL DEFAULT NULL COMMENT '上下线状态:0->下线;1->上线', - `click_count` int(11) NULL DEFAULT NULL COMMENT '点击数', - `order_count` int(11) NULL DEFAULT NULL COMMENT '下单数', - `url` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '链接地址', - `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', - `sort` int(11) NULL DEFAULT 0 COMMENT '排序', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '首页轮播广告表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_home_advertise --- ---------------------------- -INSERT INTO `sms_home_advertise` VALUES (2, '夏季大热促销', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/ad1.jpg', '2018-11-01 14:01:37', '2018-11-15 14:01:37', 0, 0, 0, NULL, '夏季大热促销', 0); -INSERT INTO `sms_home_advertise` VALUES (3, '夏季大热促销1', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/ad1.jpg', '2018-11-13 14:01:37', '2018-11-13 14:01:37', 0, 0, 0, NULL, '夏季大热促销1', 0); -INSERT INTO `sms_home_advertise` VALUES (4, '夏季大热促销2', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/ad2.jpg', '2018-11-13 14:01:37', '2018-11-13 14:01:37', 0, 0, 0, NULL, '夏季大热促销2', 0); -INSERT INTO `sms_home_advertise` VALUES (9, '电影推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20181113/movie_ad.jpg', '2018-11-01 00:00:00', '2018-11-24 00:00:00', 0, 0, 0, 'www.baidu.com', '电影推荐广告', 100); -INSERT INTO `sms_home_advertise` VALUES (10, '汽车促销广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20181113/car_ad.jpg', '2018-11-13 00:00:00', '2018-11-24 00:00:00', 0, 0, 0, 'xxx', NULL, 99); -INSERT INTO `sms_home_advertise` VALUES (11, '汽车推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20181113/car_ad2.jpg', '2018-11-13 00:00:00', '2018-11-30 00:00:00', 0, 0, 0, 'xxx', NULL, 98); -INSERT INTO `sms_home_advertise` VALUES (12, '小米推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/xiaomi_banner_01.png', '2022-11-08 17:04:03', '2023-11-08 17:04:05', 1, 0, 0, '/pages/brand/brandDetail?id=6', NULL, 0); -INSERT INTO `sms_home_advertise` VALUES (13, '华为推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/huawei_banner_01.png', '2022-11-08 17:10:27', '2023-11-08 17:10:28', 1, 0, 0, '/pages/brand/brandDetail?id=3', NULL, 0); -INSERT INTO `sms_home_advertise` VALUES (14, '苹果推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/apple_banner_01.png', '2022-11-08 17:12:54', '2023-11-08 17:12:55', 1, 0, 0, '/pages/brand/brandDetail?id=51', NULL, 0); -INSERT INTO `sms_home_advertise` VALUES (15, '三星推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_banner_01.png', '2022-11-08 17:15:38', '2023-11-08 17:15:39', 1, 0, 0, '/pages/brand/brandDetail?id=2', NULL, 0); -INSERT INTO `sms_home_advertise` VALUES (16, 'OPPO推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_banner_01.png', '2022-11-08 17:20:10', '2023-11-08 17:20:11', 1, 0, 0, '/pages/brand/brandDetail?id=21', NULL, 0); - --- ---------------------------- --- Table structure for sms_home_brand --- ---------------------------- -DROP TABLE IF EXISTS `sms_home_brand`; -CREATE TABLE `sms_home_brand` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `brand_id` bigint(20) NULL DEFAULT NULL, - `brand_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `recommend_status` int(1) NULL DEFAULT NULL, - `sort` int(11) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 48 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '首页推荐品牌表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_home_brand --- ---------------------------- -INSERT INTO `sms_home_brand` VALUES (6, 6, '小米', 1, 300); -INSERT INTO `sms_home_brand` VALUES (32, 50, '海澜之家', 1, 198); -INSERT INTO `sms_home_brand` VALUES (33, 51, '苹果', 1, 199); -INSERT INTO `sms_home_brand` VALUES (34, 2, '三星', 1, 195); -INSERT INTO `sms_home_brand` VALUES (35, 3, '华为', 1, 200); -INSERT INTO `sms_home_brand` VALUES (39, 21, 'OPPO', 1, 197); -INSERT INTO `sms_home_brand` VALUES (45, 1, '万和', 1, 0); -INSERT INTO `sms_home_brand` VALUES (46, 5, '方太', 1, 0); -INSERT INTO `sms_home_brand` VALUES (47, 4, '格力', 1, 0); - --- ---------------------------- --- Table structure for sms_home_new_product --- ---------------------------- -DROP TABLE IF EXISTS `sms_home_new_product`; -CREATE TABLE `sms_home_new_product` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `product_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `recommend_status` int(1) NULL DEFAULT NULL, - `sort` int(1) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '新鲜好物表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_home_new_product --- ---------------------------- -INSERT INTO `sms_home_new_product` VALUES (19, 37, 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', 1, 197); -INSERT INTO `sms_home_new_product` VALUES (20, 38, 'Apple iPad 10.9英寸平板电脑 2022年款(64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A )', 1, 0); -INSERT INTO `sms_home_new_product` VALUES (21, 39, '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑(新R5-6600H标压 16G 512G win11)', 1, 198); -INSERT INTO `sms_home_new_product` VALUES (22, 40, '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', 1, 200); -INSERT INTO `sms_home_new_product` VALUES (23, 41, 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量 墨羽 12GB+256GB 5G智能手机 小米 红米', 1, 199); -INSERT INTO `sms_home_new_product` VALUES (24, 42, 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息 低电量应急模式 128GB曜金黑华为鸿蒙手机', 1, 0); -INSERT INTO `sms_home_new_product` VALUES (25, 44, '三星(SAMSUNG)500GB SSD固态硬盘 M.2接口(NVMe协议) 980(MZ-V8V500BW)', 1, 0); -INSERT INTO `sms_home_new_product` VALUES (26, 45, 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄 3200万前置索尼镜头 5G手机', 1, 0); -INSERT INTO `sms_home_new_product` VALUES (27, 43, '万和(Vanward)燃气热水器天然气家用四重防冻直流变频节能全新升级增压水伺服恒温高抗风 JSQ30-565W16【16升】【恒温旗舰款】', 1, 0); - --- ---------------------------- --- Table structure for sms_home_recommend_product --- ---------------------------- -DROP TABLE IF EXISTS `sms_home_recommend_product`; -CREATE TABLE `sms_home_recommend_product` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) NULL DEFAULT NULL, - `product_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `recommend_status` int(1) NULL DEFAULT NULL, - `sort` int(1) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '人气推荐商品表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_home_recommend_product --- ---------------------------- -INSERT INTO `sms_home_recommend_product` VALUES (10, 38, 'Apple iPad 10.9英寸平板电脑 2022年款(64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A )', 1, 0); -INSERT INTO `sms_home_recommend_product` VALUES (11, 39, '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑(新R5-6600H标压 16G 512G win11)', 1, 0); -INSERT INTO `sms_home_recommend_product` VALUES (12, 44, '三星(SAMSUNG)500GB SSD固态硬盘 M.2接口(NVMe协议) 980(MZ-V8V500BW)', 1, 0); -INSERT INTO `sms_home_recommend_product` VALUES (13, 43, '万和(Vanward)燃气热水器天然气家用四重防冻直流变频节能全新升级增压水伺服恒温高抗风 JSQ30-565W16【16升】【恒温旗舰款】', 1, 0); -INSERT INTO `sms_home_recommend_product` VALUES (14, 45, 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄 3200万前置索尼镜头 5G手机', 1, 0); - --- ---------------------------- --- Table structure for sms_home_recommend_subject --- ---------------------------- -DROP TABLE IF EXISTS `sms_home_recommend_subject`; -CREATE TABLE `sms_home_recommend_subject` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `subject_id` bigint(20) NULL DEFAULT NULL, - `subject_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `recommend_status` int(1) NULL DEFAULT NULL, - `sort` int(11) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '首页推荐专题表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of sms_home_recommend_subject --- ---------------------------- -INSERT INTO `sms_home_recommend_subject` VALUES (14, 1, 'polo衬衫的也时尚', 1, 0); -INSERT INTO `sms_home_recommend_subject` VALUES (15, 2, '大牌手机低价秒', 1, 0); -INSERT INTO `sms_home_recommend_subject` VALUES (16, 3, '晓龙845新品上市', 1, 0); -INSERT INTO `sms_home_recommend_subject` VALUES (17, 4, '夏天应该穿什么', 1, 0); -INSERT INTO `sms_home_recommend_subject` VALUES (18, 5, '夏季精选', 1, 100); -INSERT INTO `sms_home_recommend_subject` VALUES (19, 6, '品牌手机降价', 1, 0); - --- ---------------------------- --- Table structure for ums_admin --- ---------------------------- -DROP TABLE IF EXISTS `ums_admin`; -CREATE TABLE `ums_admin` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像', - `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱', - `nick_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称', - `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `login_time` datetime NULL DEFAULT NULL COMMENT '最后登录时间', - `status` int(1) NULL DEFAULT 1 COMMENT '帐号启用状态:0->禁用;1->启用', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_admin --- ---------------------------- -INSERT INTO `ums_admin` VALUES (1, 'test', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_02.png', 'test@qq.com', '测试账号', NULL, '2018-09-29 13:55:30', '2018-09-29 13:55:39', 1); -INSERT INTO `ums_admin` VALUES (3, 'admin', '$2a$10$.E1FokumK5GIXWgKlg.Hc.i/0/2.qdAwYFL1zc5QHdyzpXOr38RZO', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_01.png', 'admin@163.com', '系统管理员', '系统管理员', '2018-10-08 13:32:47', '2019-04-20 12:45:16', 1); -INSERT INTO `ums_admin` VALUES (4, 'macro', '$2a$10$Bx4jZPR7GhEpIQfefDQtVeS58GfT5n6mxs/b4nLLK65eMFa16topa', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_01.png', 'macro@qq.com', 'macro', 'macro专用', '2019-10-06 15:53:51', '2020-02-03 14:55:55', 1); -INSERT INTO `ums_admin` VALUES (6, 'productAdmin', '$2a$10$6/.J.p.6Bhn7ic4GfoB5D.pGd7xSiD1a9M6ht6yO0fxzlKJPjRAGm', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_03.png', 'product@qq.com', '商品管理员', '只有商品权限', '2020-02-07 16:15:08', NULL, 1); -INSERT INTO `ums_admin` VALUES (7, 'orderAdmin', '$2a$10$UqEhA9UZXjHHA3B.L9wNG.6aerrBjC6WHTtbv1FdvYPUI.7lkL6E.', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_04.png', 'order@qq.com', '订单管理员', '只有订单管理权限', '2020-02-07 16:15:50', NULL, 1); -INSERT INTO `ums_admin` VALUES (8, 'test123', '$2a$10$M1qJguEzwoAN0la7PB8UO.HOGe1xZGku7xw1iTaUUpY0ZVRCxrxoO', 'string', 'abc@qq.com', 'string', 'string', '2022-08-07 14:45:42', NULL, 1); -INSERT INTO `ums_admin` VALUES (9, 'test256', '$2a$10$kTMBrt8mkXcO8T4eHThFWOf3KuNK6tqevkiAf4YbtXtaCJ6ocYkJa', 'string', 'abc@qq.com', 'string', 'string', '2022-08-07 14:52:57', NULL, 1); -INSERT INTO `ums_admin` VALUES (10, 'test1267', '$2a$10$VUywDhXVPY13YZxMD/uPWeDqkzSozN7o8u/3MX6sBig2NK2VaTJZ2', NULL, 'test1267@qq.com', 'test1267', 'test1267', '2023-01-04 16:13:34', NULL, 1); - --- ---------------------------- --- Table structure for ums_admin_login_log --- ---------------------------- -DROP TABLE IF EXISTS `ums_admin_login_log`; -CREATE TABLE `ums_admin_login_log` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `admin_id` bigint(20) NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `address` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `user_agent` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '浏览器登录类型', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 413 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户登录日志表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_admin_login_log --- ---------------------------- -INSERT INTO `ums_admin_login_log` VALUES (1, 3, '2018-12-23 14:27:00', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (2, 3, '2019-04-07 16:04:39', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (3, 3, '2019-04-08 21:47:52', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (4, 3, '2019-04-08 21:48:18', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (5, 3, '2019-04-18 22:18:40', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (6, 3, '2019-04-20 12:45:16', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (7, 3, '2019-05-19 14:52:12', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (8, 3, '2019-05-25 15:00:17', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (9, 3, '2019-06-19 20:11:42', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (10, 3, '2019-06-30 10:33:48', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (11, 3, '2019-06-30 10:34:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (12, 3, '2019-06-30 10:35:34', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (13, 3, '2019-07-27 17:11:01', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (14, 3, '2019-07-27 17:13:18', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (15, 3, '2019-07-27 17:15:35', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (16, 3, '2019-07-27 17:17:11', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (17, 3, '2019-07-27 17:18:34', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (18, 3, '2019-07-27 21:21:52', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (19, 3, '2019-07-27 21:34:29', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (20, 3, '2019-07-27 21:35:17', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (21, 3, '2019-07-27 21:35:48', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (22, 3, '2019-07-27 21:40:33', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (23, 3, '2019-08-18 16:00:38', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (24, 3, '2019-08-18 16:01:06', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (25, 3, '2019-08-18 16:47:01', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (26, 3, '2019-10-06 15:54:23', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (27, 3, '2019-10-06 16:03:28', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (28, 3, '2019-10-06 16:04:51', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (29, 3, '2019-10-06 16:06:44', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (30, 3, '2019-10-06 16:14:51', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (31, 1, '2019-10-06 16:15:09', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (32, 1, '2019-10-06 16:16:14', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (33, 3, '2019-10-06 16:16:35', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (34, 3, '2019-10-06 16:16:42', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (35, 3, '2019-10-07 15:20:48', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (36, 3, '2019-10-07 15:40:07', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (37, 3, '2019-10-07 16:34:15', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (38, 3, '2019-10-09 21:19:08', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (39, 4, '2019-10-09 21:30:35', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (40, 4, '2019-10-09 21:31:30', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (41, 4, '2019-10-09 21:32:39', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (42, 4, '2019-10-09 21:33:27', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (43, 4, '2019-10-09 21:33:50', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (44, 3, '2019-10-20 16:02:53', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (45, 3, '2019-10-23 21:20:55', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (46, 3, '2019-10-27 21:41:45', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (47, 3, '2019-11-09 16:44:57', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (48, 3, '2019-11-09 16:46:56', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (49, 3, '2019-11-09 16:49:55', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (50, 3, '2019-11-23 14:17:16', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (51, 6, '2019-11-23 14:52:30', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (52, 3, '2019-11-23 15:07:24', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (53, 3, '2019-11-30 21:25:30', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (54, 3, '2019-11-30 21:27:54', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (55, 3, '2019-12-28 15:23:01', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (56, 3, '2020-01-01 15:21:46', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (57, 3, '2020-01-04 16:00:54', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (58, 3, '2020-02-01 15:05:19', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (59, 3, '2020-02-01 15:36:05', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (60, 3, '2020-02-01 15:36:36', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (61, 3, '2020-02-01 15:37:30', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (62, 3, '2020-02-01 15:37:46', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (63, 3, '2020-02-01 15:38:20', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (64, 3, '2020-02-01 15:38:33', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (65, 3, '2020-02-01 15:39:06', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (66, 3, '2020-02-01 15:41:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (67, 3, '2020-02-01 15:43:17', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (68, 3, '2020-02-01 15:44:34', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (69, 3, '2020-02-01 15:45:10', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (70, 3, '2020-02-01 15:46:04', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (71, 3, '2020-02-01 15:48:33', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (72, 3, '2020-02-01 16:00:07', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (73, 3, '2020-02-01 16:07:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (74, 3, '2020-02-01 16:08:22', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (75, 3, '2020-02-02 15:28:13', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (76, 3, '2020-02-02 15:44:37', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (77, 3, '2020-02-02 15:45:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (78, 3, '2020-02-02 15:52:32', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (79, 3, '2020-02-02 15:53:44', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (80, 3, '2020-02-02 15:54:36', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (81, 3, '2020-02-02 16:01:00', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (82, 3, '2020-02-02 16:05:19', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (83, 3, '2020-02-02 16:06:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (84, 3, '2020-02-02 16:17:26', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (85, 3, '2020-02-02 16:18:45', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (86, 3, '2020-02-02 16:19:05', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (87, 3, '2020-02-02 16:19:23', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (88, 3, '2020-02-02 16:22:27', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (89, 3, '2020-02-02 16:23:30', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (90, 3, '2020-02-02 16:23:48', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (91, 3, '2020-02-02 16:24:38', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (92, 3, '2020-02-02 16:25:22', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (93, 3, '2020-02-02 16:26:19', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (94, 3, '2020-02-02 16:26:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (95, 3, '2020-02-02 16:27:08', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (96, 3, '2020-02-02 16:31:02', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (97, 3, '2020-02-02 16:31:08', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (98, 3, '2020-02-02 16:31:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (99, 3, '2020-02-02 16:31:50', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (100, 3, '2020-02-02 16:33:22', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (101, 3, '2020-02-02 16:33:41', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (102, 3, '2020-02-02 16:34:58', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (103, 3, '2020-02-02 16:38:42', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (104, 3, '2020-02-02 16:39:41', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (105, 3, '2020-02-02 16:42:22', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (106, 3, '2020-02-02 16:46:21', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (107, 3, '2020-02-02 16:50:23', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (108, 3, '2020-02-02 16:51:11', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (109, 3, '2020-02-02 16:51:22', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (110, 3, '2020-02-02 16:52:00', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (111, 3, '2020-02-02 17:01:05', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (112, 3, '2020-02-03 10:43:22', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (113, 3, '2020-02-03 10:45:29', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (114, 3, '2020-02-03 10:46:33', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (115, 3, '2020-02-03 10:54:33', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (116, 3, '2020-02-03 14:24:47', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (117, 3, '2020-02-03 14:25:38', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (118, 5, '2020-02-03 15:22:28', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (119, 5, '2020-02-03 15:23:00', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (120, 5, '2020-02-03 15:24:29', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (121, 3, '2020-02-03 15:24:50', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (122, 5, '2020-02-03 15:27:18', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (123, 3, '2020-02-03 15:27:33', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (124, 3, '2020-02-03 15:29:06', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (125, 5, '2020-02-03 15:33:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (126, 3, '2020-02-03 15:33:51', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (127, 1, '2020-02-03 15:34:35', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (128, 3, '2020-02-03 15:34:47', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (129, 3, '2020-02-04 14:14:46', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (130, 3, '2020-02-05 10:33:35', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (131, 3, '2020-02-05 10:36:21', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (132, 3, '2020-02-05 16:34:37', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (133, 4, '2020-02-05 16:58:37', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (134, 3, '2020-02-05 16:59:03', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (135, 3, '2020-02-06 10:25:02', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (136, 3, '2020-02-07 14:34:34', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (137, 3, '2020-02-07 14:36:20', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (138, 1, '2020-02-07 14:43:34', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (139, 3, '2020-02-07 15:18:06', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (140, 3, '2020-02-07 15:20:07', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (141, 3, '2020-02-07 15:22:20', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (142, 3, '2020-02-07 15:22:28', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (143, 3, '2020-02-07 15:55:11', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (144, 3, '2020-02-07 15:56:04', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (145, 3, '2020-02-07 15:58:49', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (146, 6, '2020-02-07 16:16:21', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (147, 7, '2020-02-07 16:16:37', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (148, 3, '2020-02-07 16:18:39', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (149, 7, '2020-02-07 16:20:06', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (150, 3, '2020-02-07 16:20:44', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (151, 3, '2020-02-07 16:32:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (152, 3, '2020-02-07 19:32:34', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (153, 3, '2020-02-07 19:32:48', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (154, 3, '2020-02-07 19:33:01', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (155, 3, '2020-02-07 19:33:06', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (156, 3, '2020-02-07 19:33:21', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (157, 3, '2020-02-07 19:35:33', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (158, 3, '2020-02-07 19:37:10', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (159, 3, '2020-02-07 19:37:14', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (160, 3, '2020-02-07 19:37:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (161, 3, '2020-02-07 19:45:41', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (162, 3, '2020-02-07 19:47:45', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (163, 3, '2020-02-07 20:02:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (164, 6, '2020-02-07 20:10:55', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (165, 6, '2020-02-07 20:11:02', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (166, 6, '2020-02-07 20:13:44', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (167, 6, '2020-02-07 20:17:14', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (168, 3, '2020-02-07 20:17:44', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (169, 6, '2020-02-07 20:18:13', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (170, 3, '2020-02-10 10:28:14', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (171, 3, '2020-02-10 10:45:15', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (172, 3, '2020-02-10 10:57:46', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (173, 3, '2020-02-10 10:59:06', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (174, 3, '2020-02-10 11:04:19', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (175, 3, '2020-02-10 11:05:55', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (176, 3, '2020-02-10 11:06:45', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (177, 3, '2020-02-10 11:07:41', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (178, 3, '2020-02-10 11:08:13', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (179, 3, '2020-02-10 11:10:02', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (180, 6, '2020-02-10 14:25:17', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (181, 6, '2020-02-10 14:29:14', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (182, 3, '2020-02-10 16:09:16', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (183, 3, '2020-02-20 14:39:19', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (184, 8, '2020-02-20 17:14:58', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (185, 8, '2020-02-20 17:17:04', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (186, 8, '2020-02-20 17:17:42', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (187, 8, '2020-02-21 10:26:56', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (188, 8, '2020-02-21 10:28:54', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (189, 8, '2020-02-21 10:32:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (190, 8, '2020-02-21 10:33:41', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (191, 8, '2020-02-21 10:35:58', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (192, 8, '2020-02-21 10:36:49', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (193, 3, '2020-02-21 11:10:11', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (194, 3, '2020-02-25 16:11:13', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (195, 3, '2020-02-25 16:46:29', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (196, 3, '2020-03-07 16:33:59', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (197, 6, '2020-03-07 16:35:38', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (198, 3, '2020-03-07 17:00:09', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (199, 3, '2020-03-14 14:32:08', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (200, 8, '2020-03-14 14:32:59', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (201, 3, '2020-03-14 14:33:26', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (202, 8, '2020-03-14 14:34:57', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (203, 3, '2020-03-14 14:35:23', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (204, 8, '2020-03-14 14:36:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (205, 3, '2020-03-14 14:36:51', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (206, 8, '2020-03-14 14:37:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (207, 3, '2020-03-14 14:37:44', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (208, 8, '2020-03-14 14:38:30', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (209, 3, '2020-03-14 14:38:50', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (210, 8, '2020-03-14 14:39:26', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (211, 3, '2020-03-14 14:39:41', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (212, 3, '2020-03-15 14:23:54', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (213, 3, '2020-03-22 14:33:17', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (214, 3, '2020-03-22 14:59:51', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (215, 3, '2020-03-22 15:04:32', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (216, 3, '2020-03-29 16:14:37', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (217, 3, '2020-03-29 17:17:00', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (218, 3, '2020-04-06 16:54:49', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (219, 3, '2020-04-12 15:01:40', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (220, 3, '2020-04-19 09:50:59', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (221, 3, '2020-05-04 10:45:45', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (222, 3, '2020-05-05 11:02:44', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (223, 3, '2020-05-16 15:17:21', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (224, 3, '2020-05-17 14:58:35', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (225, 3, '2020-05-18 15:47:46', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (226, 3, '2020-05-23 16:51:15', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (227, 3, '2020-05-23 16:54:53', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (228, 3, '2020-05-23 17:00:33', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (229, 3, '2020-05-24 10:38:00', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (230, 3, '2020-06-07 09:39:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (231, 3, '2020-06-14 14:23:30', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (232, 3, '2020-06-14 17:11:59', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (233, 3, '2020-06-20 14:53:51', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (234, 3, '2020-06-21 14:57:36', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (235, 3, '2020-06-27 10:41:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (236, 3, '2020-07-05 15:54:21', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (237, 3, '2020-07-11 10:40:28', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (238, 3, '2020-07-11 10:45:01', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (239, 3, '2020-07-19 11:00:16', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (240, 3, '2020-07-19 11:46:27', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (241, 3, '2020-07-19 11:53:47', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (242, 3, '2020-07-19 14:17:37', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (243, 3, '2020-07-19 14:44:24', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (244, 3, '2020-07-19 14:44:58', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (245, 3, '2020-07-19 14:48:27', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (246, 3, '2020-07-19 14:48:57', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (247, 3, '2020-07-19 14:49:30', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (248, 3, '2020-07-19 14:50:18', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (249, 3, '2020-07-19 14:51:51', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (250, 3, '2020-07-19 14:55:27', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (251, 3, '2020-07-19 14:58:14', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (252, 6, '2020-07-19 15:04:21', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (253, 3, '2020-07-19 15:38:49', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (254, 6, '2020-07-19 16:26:24', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (255, 3, '2020-08-08 10:39:12', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (256, 3, '2020-08-09 11:06:31', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (257, 3, '2020-08-10 20:41:30', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (258, 3, '2020-08-15 10:12:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (259, 1, '2020-08-19 21:23:59', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (260, 1, '2020-08-19 21:25:06', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (261, 3, '2020-09-05 16:14:50', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (262, 3, '2020-09-05 16:15:37', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (263, 3, '2020-09-12 16:07:35', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (264, 6, '2020-09-12 16:08:14', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (265, 1, '2020-09-12 16:08:26', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (266, 6, '2020-09-12 16:09:08', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (267, 1, '2020-09-12 16:09:17', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (268, 3, '2020-09-13 14:22:25', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (269, 3, '2020-09-13 14:23:07', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (270, 3, '2020-09-13 14:24:21', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (271, 3, '2020-09-13 14:32:32', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (272, 1, '2020-09-19 15:43:31', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (273, 3, '2020-09-19 15:43:58', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (274, 3, '2020-09-19 15:49:44', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (275, 6, '2020-09-19 15:50:12', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (276, 6, '2020-09-19 15:50:18', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (277, 1, '2020-09-19 15:50:41', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (278, 6, '2020-09-19 15:52:28', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (279, 1, '2020-09-19 15:53:01', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (280, 1, '2020-09-19 15:53:48', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (281, 6, '2020-09-19 15:54:37', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (282, 3, '2020-09-20 11:13:50', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (283, 1, '2020-10-08 14:26:58', '0:0:0:0:0:0:0:1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (284, 1, '2020-10-08 14:30:49', '192.168.3.185', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (285, 3, '2021-04-11 10:27:43', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (286, 1, '2021-04-11 10:29:19', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (287, 3, '2021-04-11 10:30:40', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (288, 3, '2021-04-11 10:37:50', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (289, 3, '2021-12-08 10:44:09', '192.168.3.4', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (290, 3, '2022-04-15 15:04:51', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (291, 1, '2022-05-10 15:25:58', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (292, 1, '2022-05-10 15:31:08', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (293, 1, '2022-05-10 15:32:18', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (294, 1, '2022-05-10 15:34:17', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (295, 1, '2022-05-10 15:34:38', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (296, 1, '2022-05-10 15:54:50', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (297, 1, '2022-05-10 16:31:20', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (298, 1, '2022-05-10 16:33:45', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (299, 1, '2022-05-10 16:39:07', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (300, 1, '2022-05-18 14:53:41', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (301, 3, '2022-06-07 17:28:29', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (302, 3, '2022-06-08 09:48:32', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (303, 3, '2022-06-08 10:34:20', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (304, 3, '2022-06-08 17:09:29', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (305, 3, '2022-06-08 17:10:11', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (306, 6, '2022-06-08 17:10:55', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (307, 3, '2022-06-08 17:23:05', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (308, 3, '2022-06-08 17:30:51', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (309, 3, '2022-06-08 17:31:42', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (310, 3, '2022-06-08 17:31:48', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (311, 3, '2022-06-08 21:03:56', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (312, 3, '2022-06-09 10:41:31', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (313, 3, '2022-06-09 15:18:46', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (314, 3, '2022-06-10 15:43:15', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (315, 3, '2022-06-10 15:52:27', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (316, 3, '2022-06-15 14:41:59', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (317, 3, '2022-06-23 16:24:09', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (318, 3, '2022-06-23 16:41:33', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (319, 3, '2022-06-23 16:42:50', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (320, 3, '2022-06-23 16:42:51', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (321, 3, '2022-06-23 16:42:52', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (322, 3, '2022-06-23 16:42:53', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (323, 3, '2022-06-23 16:43:07', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (324, 3, '2022-06-23 16:44:56', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (325, 3, '2022-06-23 16:45:42', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (326, 3, '2022-06-23 16:50:08', '192.168.3.6', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (327, 3, '2022-06-24 15:19:04', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (328, 3, '2022-06-24 15:25:52', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (329, 3, '2022-06-24 15:40:29', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (330, 3, '2022-06-25 15:13:52', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (331, 3, '2022-06-25 15:25:12', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (332, 3, '2022-06-27 16:38:37', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (333, 3, '2022-07-24 10:10:06', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (334, 1, '2022-07-25 17:15:55', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (335, 3, '2022-07-27 09:41:32', '192.168.3.227', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (336, 1, '2022-07-28 16:56:10', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (337, 1, '2022-07-28 16:56:25', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (338, 8, '2022-08-07 14:46:00', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (339, 9, '2022-08-07 14:53:32', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (340, 9, '2022-08-07 14:53:46', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (341, 9, '2022-08-07 14:56:19', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (342, 1, '2022-08-09 10:53:55', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (343, 1, '2022-08-09 10:54:36', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (344, 1, '2022-08-09 11:00:06', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (345, 1, '2022-08-09 11:02:04', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (346, 1, '2022-08-09 15:48:14', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (347, 1, '2022-08-16 16:35:24', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (348, 1, '2022-08-17 15:03:52', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (349, 1, '2022-08-20 16:49:19', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (350, 1, '2022-08-23 14:54:06', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (351, 1, '2022-08-31 17:16:35', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (352, 3, '2022-10-14 15:31:42', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (353, 3, '2022-10-14 15:42:39', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (354, 3, '2022-10-14 15:44:08', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (355, 3, '2022-10-14 15:46:23', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (356, 3, '2022-10-14 15:46:35', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (357, 3, '2022-10-14 16:06:11', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (358, 3, '2022-10-14 16:24:08', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (359, 3, '2022-10-17 16:44:52', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (360, 3, '2022-10-17 16:49:42', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (361, 3, '2022-10-17 16:49:53', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (362, 3, '2022-10-17 17:03:10', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (363, 3, '2022-10-17 17:03:22', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (364, 3, '2022-10-17 21:00:48', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (365, 3, '2022-10-24 16:32:31', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (366, 3, '2022-10-26 16:31:17', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (367, 3, '2022-10-26 16:50:48', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (368, 3, '2022-10-26 16:52:28', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (369, 3, '2022-10-27 17:21:28', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (370, 3, '2022-10-28 10:52:22', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (371, 3, '2022-11-04 16:09:08', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (372, 3, '2022-11-08 10:27:27', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (373, 3, '2022-11-09 10:42:30', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (374, 3, '2022-11-10 15:03:08', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (375, 3, '2022-11-11 10:11:11', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (376, 3, '2022-11-14 16:33:30', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (377, 3, '2022-11-15 10:54:02', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (378, 3, '2022-11-15 15:16:35', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (379, 3, '2022-11-15 15:17:41', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (380, 3, '2022-11-15 15:17:47', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (381, 1, '2022-11-15 15:19:56', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (382, 3, '2022-11-15 15:20:12', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (383, 3, '2022-11-15 15:22:22', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (384, 3, '2022-11-16 10:39:08', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (385, 1, '2022-11-24 20:02:12', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (386, 3, '2022-11-28 15:24:02', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (387, 3, '2022-11-30 09:34:28', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (388, 3, '2022-12-05 09:43:58', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (389, 3, '2022-12-09 17:18:09', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (390, 3, '2022-12-15 14:53:39', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (391, 3, '2022-12-15 16:11:54', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (392, 3, '2022-12-20 15:55:18', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (393, 3, '2022-12-21 14:49:30', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (394, 3, '2022-12-23 09:49:50', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (395, 3, '2023-01-04 10:17:44', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (396, 3, '2023-01-04 15:28:47', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (397, 3, '2023-01-05 10:13:43', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (398, 3, '2023-01-06 09:49:23', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (399, 3, '2023-01-06 10:04:19', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (400, 3, '2023-01-06 10:07:06', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (401, 3, '2023-01-06 16:21:31', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (402, 3, '2023-01-09 16:50:30', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (403, 3, '2023-01-10 10:05:52', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (404, 3, '2023-01-10 17:09:44', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (405, 3, '2023-01-11 10:17:17', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (406, 3, '2023-01-13 09:35:37', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (407, 3, '2023-01-13 09:40:51', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (408, 3, '2023-01-31 10:46:52', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (409, 3, '2023-02-08 17:11:11', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (410, 3, '2023-02-09 15:46:41', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (411, 3, '2023-02-10 17:23:52', '192.168.56.1', NULL, NULL); -INSERT INTO `ums_admin_login_log` VALUES (412, 3, '2023-05-11 15:29:54', '192.168.56.1', NULL, NULL); - --- ---------------------------- --- Table structure for ums_admin_permission_relation --- ---------------------------- -DROP TABLE IF EXISTS `ums_admin_permission_relation`; -CREATE TABLE `ums_admin_permission_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `admin_id` bigint(20) NULL DEFAULT NULL, - `permission_id` bigint(20) NULL DEFAULT NULL, - `type` int(1) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户和权限关系表(除角色中定义的权限以外的加减权限)' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_admin_permission_relation --- ---------------------------- - --- ---------------------------- --- Table structure for ums_admin_role_relation --- ---------------------------- -DROP TABLE IF EXISTS `ums_admin_role_relation`; -CREATE TABLE `ums_admin_role_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `admin_id` bigint(20) NULL DEFAULT NULL, - `role_id` bigint(20) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户和角色关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_admin_role_relation --- ---------------------------- -INSERT INTO `ums_admin_role_relation` VALUES (26, 3, 5); -INSERT INTO `ums_admin_role_relation` VALUES (27, 6, 1); -INSERT INTO `ums_admin_role_relation` VALUES (28, 7, 2); -INSERT INTO `ums_admin_role_relation` VALUES (29, 1, 5); -INSERT INTO `ums_admin_role_relation` VALUES (30, 4, 5); -INSERT INTO `ums_admin_role_relation` VALUES (31, 8, 1); - --- ---------------------------- --- Table structure for ums_growth_change_history --- ---------------------------- -DROP TABLE IF EXISTS `ums_growth_change_history`; -CREATE TABLE `ums_growth_change_history` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_id` bigint(20) NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `change_type` int(1) NULL DEFAULT NULL COMMENT '改变类型:0->增加;1->减少', - `change_count` int(11) NULL DEFAULT NULL COMMENT '积分改变数量', - `operate_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人员', - `operate_note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作备注', - `source_type` int(1) NULL DEFAULT NULL COMMENT '积分来源:0->购物;1->管理员修改', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '成长值变化历史记录表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_growth_change_history --- ---------------------------- -INSERT INTO `ums_growth_change_history` VALUES (1, 1, '2018-08-29 17:16:35', 0, 1000, 'test', '测试使用', 1); - --- ---------------------------- --- Table structure for ums_integration_change_history --- ---------------------------- -DROP TABLE IF EXISTS `ums_integration_change_history`; -CREATE TABLE `ums_integration_change_history` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_id` bigint(20) NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `change_type` int(1) NULL DEFAULT NULL COMMENT '改变类型:0->增加;1->减少', - `change_count` int(11) NULL DEFAULT NULL COMMENT '积分改变数量', - `operate_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人员', - `operate_note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作备注', - `source_type` int(1) NULL DEFAULT NULL COMMENT '积分来源:0->购物;1->管理员修改', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '积分变化历史记录表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_integration_change_history --- ---------------------------- - --- ---------------------------- --- Table structure for ums_integration_consume_setting --- ---------------------------- -DROP TABLE IF EXISTS `ums_integration_consume_setting`; -CREATE TABLE `ums_integration_consume_setting` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `deduction_per_amount` int(11) NULL DEFAULT NULL COMMENT '每一元需要抵扣的积分数量', - `max_percent_per_order` int(11) NULL DEFAULT NULL COMMENT '每笔订单最高抵用百分比', - `use_unit` int(11) NULL DEFAULT NULL COMMENT '每次使用积分最小单位100', - `coupon_status` int(1) NULL DEFAULT NULL COMMENT '是否可以和优惠券同用;0->不可以;1->可以', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '积分消费设置' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_integration_consume_setting --- ---------------------------- -INSERT INTO `ums_integration_consume_setting` VALUES (1, 100, 50, 100, 1); - --- ---------------------------- --- Table structure for ums_member --- ---------------------------- -DROP TABLE IF EXISTS `ums_member`; -CREATE TABLE `ums_member` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_level_id` bigint(20) NULL DEFAULT NULL, - `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名', - `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码', - `nickname` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称', - `phone` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号码', - `status` int(1) NULL DEFAULT NULL COMMENT '帐号启用状态:0->禁用;1->启用', - `create_time` datetime NULL DEFAULT NULL COMMENT '注册时间', - `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像', - `gender` int(1) NULL DEFAULT NULL COMMENT '性别:0->未知;1->男;2->女', - `birthday` date NULL DEFAULT NULL COMMENT '生日', - `city` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所做城市', - `job` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '职业', - `personalized_signature` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '个性签名', - `source_type` int(1) NULL DEFAULT NULL COMMENT '用户来源', - `integration` int(11) NULL DEFAULT NULL COMMENT '积分', - `growth` int(11) NULL DEFAULT NULL COMMENT '成长值', - `luckey_count` int(11) NULL DEFAULT NULL COMMENT '剩余抽奖次数', - `history_integration` int(11) NULL DEFAULT NULL COMMENT '历史积分数量', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE INDEX `idx_username`(`username`) USING BTREE, - UNIQUE INDEX `idx_phone`(`phone`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member --- ---------------------------- -INSERT INTO `ums_member` VALUES (1, 4, 'test', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'test', '18061581849', 1, '2018-08-02 10:35:44', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_03.png', 1, '2009-06-01', '上海', '学生', 'test', NULL, 3900, 1000, NULL, NULL); -INSERT INTO `ums_member` VALUES (3, 4, 'windy', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'windy', '18061581848', 1, '2018-08-03 16:46:38', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `ums_member` VALUES (4, 4, 'zhengsan', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'zhengsan', '18061581847', 1, '2018-11-12 14:12:04', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `ums_member` VALUES (5, 4, 'lisi', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'lisi', '18061581841', 1, '2018-11-12 14:12:38', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `ums_member` VALUES (6, 4, 'wangwu', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'wangwu', '18061581842', 1, '2018-11-12 14:13:09', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `ums_member` VALUES (7, 4, 'lion', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'lion', '18061581845', 1, '2018-11-12 14:21:39', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `ums_member` VALUES (8, 4, 'shari', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'shari', '18061581844', 1, '2018-11-12 14:22:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `ums_member` VALUES (9, 4, 'aewen', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'aewen', '18061581843', 1, '2018-11-12 14:22:55', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `ums_member` VALUES (10, 4, 'guest', '$2a$10$WQiD4RzEs1iJVWU.2HVu8OdSlExJHWKmwndaw3SUfMyqfKZmXe1vq', NULL, '18911111111', 1, '2020-03-14 14:52:18', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `ums_member` VALUES (11, 4, 'member', '$2a$10$Q08uzqvtPj61NnpYQZsVvOnyilJ3AU4VdngAcJFGvPhEeqhhC.hhS', 'member', '18961511111', 1, '2023-05-11 15:22:38', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_02.png', 1, '2009-06-01', '上海', '学生', 'member', NULL, 5000, 1000, NULL, NULL); - --- ---------------------------- --- Table structure for ums_member_level --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_level`; -CREATE TABLE `ums_member_level` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `growth_point` int(11) NULL DEFAULT NULL, - `default_status` int(1) NULL DEFAULT NULL COMMENT '是否为默认等级:0->不是;1->是', - `free_freight_point` decimal(10, 2) NULL DEFAULT NULL COMMENT '免运费标准', - `comment_growth_point` int(11) NULL DEFAULT NULL COMMENT '每次评价获取的成长值', - `priviledge_free_freight` int(1) NULL DEFAULT NULL COMMENT '是否有免邮特权', - `priviledge_sign_in` int(1) NULL DEFAULT NULL COMMENT '是否有签到特权', - `priviledge_comment` int(1) NULL DEFAULT NULL COMMENT '是否有评论获奖励特权', - `priviledge_promotion` int(1) NULL DEFAULT NULL COMMENT '是否有专享活动特权', - `priviledge_member_price` int(1) NULL DEFAULT NULL COMMENT '是否有会员价格特权', - `priviledge_birthday` int(1) NULL DEFAULT NULL COMMENT '是否有生日特权', - `note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员等级表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_level --- ---------------------------- -INSERT INTO `ums_member_level` VALUES (1, '黄金会员', 1000, 0, 199.00, 5, 1, 1, 1, 1, 1, 1, NULL); -INSERT INTO `ums_member_level` VALUES (2, '白金会员', 5000, 0, 99.00, 10, 1, 1, 1, 1, 1, 1, NULL); -INSERT INTO `ums_member_level` VALUES (3, '钻石会员', 15000, 0, 69.00, 15, 1, 1, 1, 1, 1, 1, NULL); -INSERT INTO `ums_member_level` VALUES (4, '普通会员', 1, 1, 199.00, 20, 1, 1, 1, 1, 0, 0, NULL); - --- ---------------------------- --- Table structure for ums_member_login_log --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_login_log`; -CREATE TABLE `ums_member_login_log` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_id` bigint(20) NULL DEFAULT NULL, - `create_time` datetime NULL DEFAULT NULL, - `ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `city` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `login_type` int(1) NULL DEFAULT NULL COMMENT '登录类型:0->PC;1->android;2->ios;3->小程序', - `province` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员登录记录' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_login_log --- ---------------------------- - --- ---------------------------- --- Table structure for ums_member_member_tag_relation --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_member_tag_relation`; -CREATE TABLE `ums_member_member_tag_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_id` bigint(20) NULL DEFAULT NULL, - `tag_id` bigint(20) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户和标签关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_member_tag_relation --- ---------------------------- - --- ---------------------------- --- Table structure for ums_member_product_category_relation --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_product_category_relation`; -CREATE TABLE `ums_member_product_category_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_id` bigint(20) NULL DEFAULT NULL, - `product_category_id` bigint(20) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员与产品分类关系表(用户喜欢的分类)' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_product_category_relation --- ---------------------------- - --- ---------------------------- --- Table structure for ums_member_receive_address --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_receive_address`; -CREATE TABLE `ums_member_receive_address` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_id` bigint(20) NULL DEFAULT NULL, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人名称', - `phone_number` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `default_status` int(1) NULL DEFAULT NULL COMMENT '是否为默认', - `post_code` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮政编码', - `province` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省份/直辖市', - `city` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '城市', - `region` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区', - `detail_address` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址(街道)', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员收货地址表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_receive_address --- ---------------------------- -INSERT INTO `ums_member_receive_address` VALUES (1, 1, '大梨', '18033441849', 0, '518000', '广东省', '深圳市', '南山区', '科兴科学园'); -INSERT INTO `ums_member_receive_address` VALUES (3, 1, '大梨', '18033441849', 0, '518000', '广东省', '深圳市', '福田区', '清水河街道'); -INSERT INTO `ums_member_receive_address` VALUES (4, 1, '大梨', '18033441849', 1, '518000', '广东省', '深圳市', '福田区', '东晓街道'); -INSERT INTO `ums_member_receive_address` VALUES (5, 11, '小李', '18961511111', 1, '518000', '广东省', '深圳市', '福田区', '东晓街道'); -INSERT INTO `ums_member_receive_address` VALUES (6, 11, '小李', '18961511111', NULL, '518000', '广东省', '深圳市', '福田区', '清水河街道'); - --- ---------------------------- --- Table structure for ums_member_rule_setting --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_rule_setting`; -CREATE TABLE `ums_member_rule_setting` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `continue_sign_day` int(11) NULL DEFAULT NULL COMMENT '连续签到天数', - `continue_sign_point` int(11) NULL DEFAULT NULL COMMENT '连续签到赠送数量', - `consume_per_point` decimal(10, 2) NULL DEFAULT NULL COMMENT '每消费多少元获取1个点', - `low_order_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '最低获取点数的订单金额', - `max_point_per_order` int(11) NULL DEFAULT NULL COMMENT '每笔订单最高获取点数', - `type` int(1) NULL DEFAULT NULL COMMENT '类型:0->积分规则;1->成长值规则', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员积分成长规则表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_rule_setting --- ---------------------------- - --- ---------------------------- --- Table structure for ums_member_statistics_info --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_statistics_info`; -CREATE TABLE `ums_member_statistics_info` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `member_id` bigint(20) NULL DEFAULT NULL, - `consume_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '累计消费金额', - `order_count` int(11) NULL DEFAULT NULL COMMENT '订单数量', - `coupon_count` int(11) NULL DEFAULT NULL COMMENT '优惠券数量', - `comment_count` int(11) NULL DEFAULT NULL COMMENT '评价数', - `return_order_count` int(11) NULL DEFAULT NULL COMMENT '退货数量', - `login_count` int(11) NULL DEFAULT NULL COMMENT '登录次数', - `attend_count` int(11) NULL DEFAULT NULL COMMENT '关注数量', - `fans_count` int(11) NULL DEFAULT NULL COMMENT '粉丝数量', - `collect_product_count` int(11) NULL DEFAULT NULL, - `collect_subject_count` int(11) NULL DEFAULT NULL, - `collect_topic_count` int(11) NULL DEFAULT NULL, - `collect_comment_count` int(11) NULL DEFAULT NULL, - `invite_friend_count` int(11) NULL DEFAULT NULL, - `recent_order_time` datetime NULL DEFAULT NULL COMMENT '最后一次下订单时间', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员统计信息' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_statistics_info --- ---------------------------- - --- ---------------------------- --- Table structure for ums_member_tag --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_tag`; -CREATE TABLE `ums_member_tag` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `finish_order_count` int(11) NULL DEFAULT NULL COMMENT '自动打标签完成订单数量', - `finish_order_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '自动打标签完成订单金额', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户标签表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_tag --- ---------------------------- - --- ---------------------------- --- Table structure for ums_member_task --- ---------------------------- -DROP TABLE IF EXISTS `ums_member_task`; -CREATE TABLE `ums_member_task` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `growth` int(11) NULL DEFAULT NULL COMMENT '赠送成长值', - `intergration` int(11) NULL DEFAULT NULL COMMENT '赠送积分', - `type` int(1) NULL DEFAULT NULL COMMENT '任务类型:0->新手任务;1->日常任务', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员任务表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_member_task --- ---------------------------- - --- ---------------------------- --- Table structure for ums_menu --- ---------------------------- -DROP TABLE IF EXISTS `ums_menu`; -CREATE TABLE `ums_menu` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父级ID', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单名称', - `level` int(4) NULL DEFAULT NULL COMMENT '菜单级数', - `sort` int(4) NULL DEFAULT NULL COMMENT '菜单排序', - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端名称', - `icon` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端图标', - `hidden` int(1) NULL DEFAULT NULL COMMENT '前端隐藏', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 26 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台菜单表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_menu --- ---------------------------- -INSERT INTO `ums_menu` VALUES (1, 0, '2020-02-02 14:50:36', '商品', 0, 0, 'pms', 'product', 0); -INSERT INTO `ums_menu` VALUES (2, 1, '2020-02-02 14:51:50', '商品列表', 1, 0, 'product', 'product-list', 0); -INSERT INTO `ums_menu` VALUES (3, 1, '2020-02-02 14:52:44', '添加商品', 1, 0, 'addProduct', 'product-add', 0); -INSERT INTO `ums_menu` VALUES (4, 1, '2020-02-02 14:53:51', '商品分类', 1, 0, 'productCate', 'product-cate', 0); -INSERT INTO `ums_menu` VALUES (5, 1, '2020-02-02 14:54:51', '商品类型', 1, 0, 'productAttr', 'product-attr', 0); -INSERT INTO `ums_menu` VALUES (6, 1, '2020-02-02 14:56:29', '品牌管理', 1, 0, 'brand', 'product-brand', 0); -INSERT INTO `ums_menu` VALUES (7, 0, '2020-02-02 16:54:07', '订单', 0, 0, 'oms', 'order', 0); -INSERT INTO `ums_menu` VALUES (8, 7, '2020-02-02 16:55:18', '订单列表', 1, 0, 'order', 'product-list', 0); -INSERT INTO `ums_menu` VALUES (9, 7, '2020-02-02 16:56:46', '订单设置', 1, 0, 'orderSetting', 'order-setting', 0); -INSERT INTO `ums_menu` VALUES (10, 7, '2020-02-02 16:57:39', '退货申请处理', 1, 0, 'returnApply', 'order-return', 0); -INSERT INTO `ums_menu` VALUES (11, 7, '2020-02-02 16:59:40', '退货原因设置', 1, 0, 'returnReason', 'order-return-reason', 0); -INSERT INTO `ums_menu` VALUES (12, 0, '2020-02-04 16:18:00', '营销', 0, 0, 'sms', 'sms', 0); -INSERT INTO `ums_menu` VALUES (13, 12, '2020-02-04 16:19:22', '秒杀活动列表', 1, 0, 'flash', 'sms-flash', 0); -INSERT INTO `ums_menu` VALUES (14, 12, '2020-02-04 16:20:16', '优惠券列表', 1, 0, 'coupon', 'sms-coupon', 0); -INSERT INTO `ums_menu` VALUES (16, 12, '2020-02-07 16:22:38', '品牌推荐', 1, 0, 'homeBrand', 'product-brand', 0); -INSERT INTO `ums_menu` VALUES (17, 12, '2020-02-07 16:23:14', '新品推荐', 1, 0, 'homeNew', 'sms-new', 0); -INSERT INTO `ums_menu` VALUES (18, 12, '2020-02-07 16:26:38', '人气推荐', 1, 0, 'homeHot', 'sms-hot', 0); -INSERT INTO `ums_menu` VALUES (19, 12, '2020-02-07 16:28:16', '专题推荐', 1, 0, 'homeSubject', 'sms-subject', 0); -INSERT INTO `ums_menu` VALUES (20, 12, '2020-02-07 16:28:42', '广告列表', 1, 0, 'homeAdvertise', 'sms-ad', 0); -INSERT INTO `ums_menu` VALUES (21, 0, '2020-02-07 16:29:13', '权限', 0, 0, 'ums', 'ums', 0); -INSERT INTO `ums_menu` VALUES (22, 21, '2020-02-07 16:29:51', '用户列表', 1, 0, 'admin', 'ums-admin', 0); -INSERT INTO `ums_menu` VALUES (23, 21, '2020-02-07 16:30:13', '角色列表', 1, 0, 'role', 'ums-role', 0); -INSERT INTO `ums_menu` VALUES (24, 21, '2020-02-07 16:30:53', '菜单列表', 1, 0, 'menu', 'ums-menu', 0); -INSERT INTO `ums_menu` VALUES (25, 21, '2020-02-07 16:31:13', '资源列表', 1, 0, 'resource', 'ums-resource', 0); - --- ---------------------------- --- Table structure for ums_permission --- ---------------------------- -DROP TABLE IF EXISTS `ums_permission`; -CREATE TABLE `ums_permission` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `pid` bigint(20) NULL DEFAULT NULL COMMENT '父级权限id', - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称', - `value` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限值', - `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标', - `type` int(1) NULL DEFAULT NULL COMMENT '权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)', - `uri` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端资源路径', - `status` int(1) NULL DEFAULT NULL COMMENT '启用状态;0->禁用;1->启用', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `sort` int(11) NULL DEFAULT NULL COMMENT '排序', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户权限表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_permission --- ---------------------------- -INSERT INTO `ums_permission` VALUES (1, 0, '商品', NULL, NULL, 0, NULL, 1, '2018-09-29 16:15:14', 0); -INSERT INTO `ums_permission` VALUES (2, 1, '商品列表', 'pms:product:read', NULL, 1, '/pms/product/index', 1, '2018-09-29 16:17:01', 0); -INSERT INTO `ums_permission` VALUES (3, 1, '添加商品', 'pms:product:create', NULL, 1, '/pms/product/add', 1, '2018-09-29 16:18:51', 0); -INSERT INTO `ums_permission` VALUES (4, 1, '商品分类', 'pms:productCategory:read', NULL, 1, '/pms/productCate/index', 1, '2018-09-29 16:23:07', 0); -INSERT INTO `ums_permission` VALUES (5, 1, '商品类型', 'pms:productAttribute:read', NULL, 1, '/pms/productAttr/index', 1, '2018-09-29 16:24:43', 0); -INSERT INTO `ums_permission` VALUES (6, 1, '品牌管理', 'pms:brand:read', NULL, 1, '/pms/brand/index', 1, '2018-09-29 16:25:45', 0); -INSERT INTO `ums_permission` VALUES (7, 2, '编辑商品', 'pms:product:update', NULL, 2, '/pms/product/updateProduct', 1, '2018-09-29 16:34:23', 0); -INSERT INTO `ums_permission` VALUES (8, 2, '删除商品', 'pms:product:delete', NULL, 2, '/pms/product/delete', 1, '2018-09-29 16:38:33', 0); -INSERT INTO `ums_permission` VALUES (9, 4, '添加商品分类', 'pms:productCategory:create', NULL, 2, '/pms/productCate/create', 1, '2018-09-29 16:43:23', 0); -INSERT INTO `ums_permission` VALUES (10, 4, '修改商品分类', 'pms:productCategory:update', NULL, 2, '/pms/productCate/update', 1, '2018-09-29 16:43:55', 0); -INSERT INTO `ums_permission` VALUES (11, 4, '删除商品分类', 'pms:productCategory:delete', NULL, 2, '/pms/productAttr/delete', 1, '2018-09-29 16:44:38', 0); -INSERT INTO `ums_permission` VALUES (12, 5, '添加商品类型', 'pms:productAttribute:create', NULL, 2, '/pms/productAttr/create', 1, '2018-09-29 16:45:25', 0); -INSERT INTO `ums_permission` VALUES (13, 5, '修改商品类型', 'pms:productAttribute:update', NULL, 2, '/pms/productAttr/update', 1, '2018-09-29 16:48:08', 0); -INSERT INTO `ums_permission` VALUES (14, 5, '删除商品类型', 'pms:productAttribute:delete', NULL, 2, '/pms/productAttr/delete', 1, '2018-09-29 16:48:44', 0); -INSERT INTO `ums_permission` VALUES (15, 6, '添加品牌', 'pms:brand:create', NULL, 2, '/pms/brand/add', 1, '2018-09-29 16:49:34', 0); -INSERT INTO `ums_permission` VALUES (16, 6, '修改品牌', 'pms:brand:update', NULL, 2, '/pms/brand/update', 1, '2018-09-29 16:50:55', 0); -INSERT INTO `ums_permission` VALUES (17, 6, '删除品牌', 'pms:brand:delete', NULL, 2, '/pms/brand/delete', 1, '2018-09-29 16:50:59', 0); -INSERT INTO `ums_permission` VALUES (18, 0, '首页', NULL, NULL, 0, NULL, 1, '2018-09-29 16:51:57', 0); - --- ---------------------------- --- Table structure for ums_resource --- ---------------------------- -DROP TABLE IF EXISTS `ums_resource`; -CREATE TABLE `ums_resource` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资源名称', - `url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资源URL', - `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述', - `category_id` bigint(20) NULL DEFAULT NULL COMMENT '资源分类ID', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 33 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台资源表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_resource --- ---------------------------- -INSERT INTO `ums_resource` VALUES (1, '2020-02-04 17:04:55', '商品品牌管理', '/brand/**', NULL, 1); -INSERT INTO `ums_resource` VALUES (2, '2020-02-04 17:05:35', '商品属性分类管理', '/productAttribute/category/**', NULL, 1); -INSERT INTO `ums_resource` VALUES (3, '2020-02-04 17:06:13', '商品属性管理', '/productAttribute/**', NULL, 1); -INSERT INTO `ums_resource` VALUES (4, '2020-02-04 17:07:15', '商品分类管理', '/productCategory/**', NULL, 1); -INSERT INTO `ums_resource` VALUES (5, '2020-02-04 17:09:16', '商品管理', '/product/**', NULL, 1); -INSERT INTO `ums_resource` VALUES (6, '2020-02-04 17:09:53', '商品库存管理', '/sku/**', NULL, 1); -INSERT INTO `ums_resource` VALUES (8, '2020-02-05 14:43:37', '订单管理', '/order/**', '', 2); -INSERT INTO `ums_resource` VALUES (9, '2020-02-05 14:44:22', ' 订单退货申请管理', '/returnApply/**', '', 2); -INSERT INTO `ums_resource` VALUES (10, '2020-02-05 14:45:08', '退货原因管理', '/returnReason/**', '', 2); -INSERT INTO `ums_resource` VALUES (11, '2020-02-05 14:45:43', '订单设置管理', '/orderSetting/**', '', 2); -INSERT INTO `ums_resource` VALUES (12, '2020-02-05 14:46:23', '收货地址管理', '/companyAddress/**', '', 2); -INSERT INTO `ums_resource` VALUES (13, '2020-02-07 16:37:22', '优惠券管理', '/coupon/**', '', 3); -INSERT INTO `ums_resource` VALUES (14, '2020-02-07 16:37:59', '优惠券领取记录管理', '/couponHistory/**', '', 3); -INSERT INTO `ums_resource` VALUES (15, '2020-02-07 16:38:28', '限时购活动管理', '/flash/**', '', 3); -INSERT INTO `ums_resource` VALUES (16, '2020-02-07 16:38:59', '限时购商品关系管理', '/flashProductRelation/**', '', 3); -INSERT INTO `ums_resource` VALUES (17, '2020-02-07 16:39:22', '限时购场次管理', '/flashSession/**', '', 3); -INSERT INTO `ums_resource` VALUES (18, '2020-02-07 16:40:07', '首页轮播广告管理', '/home/advertise/**', '', 3); -INSERT INTO `ums_resource` VALUES (19, '2020-02-07 16:40:34', '首页品牌管理', '/home/brand/**', '', 3); -INSERT INTO `ums_resource` VALUES (20, '2020-02-07 16:41:06', '首页新品管理', '/home/newProduct/**', '', 3); -INSERT INTO `ums_resource` VALUES (21, '2020-02-07 16:42:16', '首页人气推荐管理', '/home/recommendProduct/**', '', 3); -INSERT INTO `ums_resource` VALUES (22, '2020-02-07 16:42:48', '首页专题推荐管理', '/home/recommendSubject/**', '', 3); -INSERT INTO `ums_resource` VALUES (23, '2020-02-07 16:44:56', ' 商品优选管理', '/prefrenceArea/**', '', 5); -INSERT INTO `ums_resource` VALUES (24, '2020-02-07 16:45:39', '商品专题管理', '/subject/**', '', 5); -INSERT INTO `ums_resource` VALUES (25, '2020-02-07 16:47:34', '后台用户管理', '/admin/**', '', 4); -INSERT INTO `ums_resource` VALUES (26, '2020-02-07 16:48:24', '后台用户角色管理', '/role/**', '', 4); -INSERT INTO `ums_resource` VALUES (27, '2020-02-07 16:48:48', '后台菜单管理', '/menu/**', '', 4); -INSERT INTO `ums_resource` VALUES (28, '2020-02-07 16:49:18', '后台资源分类管理', '/resourceCategory/**', '', 4); -INSERT INTO `ums_resource` VALUES (29, '2020-02-07 16:49:45', '后台资源管理', '/resource/**', '', 4); -INSERT INTO `ums_resource` VALUES (30, '2020-09-19 15:47:57', '会员等级管理', '/memberLevel/**', '', 7); -INSERT INTO `ums_resource` VALUES (31, '2020-09-19 15:51:29', '获取登录用户信息', '/admin/info', '用户登录必配', 4); -INSERT INTO `ums_resource` VALUES (32, '2020-09-19 15:53:34', '用户登出', '/admin/logout', '用户登出必配', 4); - --- ---------------------------- --- Table structure for ums_resource_category --- ---------------------------- -DROP TABLE IF EXISTS `ums_resource_category`; -CREATE TABLE `ums_resource_category` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类名称', - `sort` int(4) NULL DEFAULT NULL COMMENT '排序', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '资源分类表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_resource_category --- ---------------------------- -INSERT INTO `ums_resource_category` VALUES (1, '2020-02-05 10:21:44', '商品模块', 0); -INSERT INTO `ums_resource_category` VALUES (2, '2020-02-05 10:22:34', '订单模块', 0); -INSERT INTO `ums_resource_category` VALUES (3, '2020-02-05 10:22:48', '营销模块', 0); -INSERT INTO `ums_resource_category` VALUES (4, '2020-02-05 10:23:04', '权限模块', 0); -INSERT INTO `ums_resource_category` VALUES (5, '2020-02-07 16:34:27', '内容模块', 0); -INSERT INTO `ums_resource_category` VALUES (7, '2020-09-19 15:49:08', '其他模块', 0); - --- ---------------------------- --- Table structure for ums_role --- ---------------------------- -DROP TABLE IF EXISTS `ums_role`; -CREATE TABLE `ums_role` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称', - `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述', - `admin_count` int(11) NULL DEFAULT NULL COMMENT '后台用户数量', - `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', - `status` int(1) NULL DEFAULT 1 COMMENT '启用状态:0->禁用;1->启用', - `sort` int(11) NULL DEFAULT 0, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户角色表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_role --- ---------------------------- -INSERT INTO `ums_role` VALUES (1, '商品管理员', '只能查看及操作商品', 0, '2020-02-03 16:50:37', 1, 0); -INSERT INTO `ums_role` VALUES (2, '订单管理员', '只能查看及操作订单', 0, '2018-09-30 15:53:45', 1, 0); -INSERT INTO `ums_role` VALUES (5, '超级管理员', '拥有所有查看和操作功能', 0, '2020-02-02 15:11:05', 1, 0); - --- ---------------------------- --- Table structure for ums_role_menu_relation --- ---------------------------- -DROP TABLE IF EXISTS `ums_role_menu_relation`; -CREATE TABLE `ums_role_menu_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID', - `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单ID', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 127 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台角色菜单关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_role_menu_relation --- ---------------------------- -INSERT INTO `ums_role_menu_relation` VALUES (53, 2, 7); -INSERT INTO `ums_role_menu_relation` VALUES (54, 2, 8); -INSERT INTO `ums_role_menu_relation` VALUES (55, 2, 9); -INSERT INTO `ums_role_menu_relation` VALUES (56, 2, 10); -INSERT INTO `ums_role_menu_relation` VALUES (57, 2, 11); -INSERT INTO `ums_role_menu_relation` VALUES (72, 5, 1); -INSERT INTO `ums_role_menu_relation` VALUES (73, 5, 2); -INSERT INTO `ums_role_menu_relation` VALUES (74, 5, 3); -INSERT INTO `ums_role_menu_relation` VALUES (75, 5, 4); -INSERT INTO `ums_role_menu_relation` VALUES (76, 5, 5); -INSERT INTO `ums_role_menu_relation` VALUES (77, 5, 6); -INSERT INTO `ums_role_menu_relation` VALUES (78, 5, 7); -INSERT INTO `ums_role_menu_relation` VALUES (79, 5, 8); -INSERT INTO `ums_role_menu_relation` VALUES (80, 5, 9); -INSERT INTO `ums_role_menu_relation` VALUES (81, 5, 10); -INSERT INTO `ums_role_menu_relation` VALUES (82, 5, 11); -INSERT INTO `ums_role_menu_relation` VALUES (83, 5, 12); -INSERT INTO `ums_role_menu_relation` VALUES (84, 5, 13); -INSERT INTO `ums_role_menu_relation` VALUES (85, 5, 14); -INSERT INTO `ums_role_menu_relation` VALUES (86, 5, 16); -INSERT INTO `ums_role_menu_relation` VALUES (87, 5, 17); -INSERT INTO `ums_role_menu_relation` VALUES (88, 5, 18); -INSERT INTO `ums_role_menu_relation` VALUES (89, 5, 19); -INSERT INTO `ums_role_menu_relation` VALUES (90, 5, 20); -INSERT INTO `ums_role_menu_relation` VALUES (91, 5, 21); -INSERT INTO `ums_role_menu_relation` VALUES (92, 5, 22); -INSERT INTO `ums_role_menu_relation` VALUES (93, 5, 23); -INSERT INTO `ums_role_menu_relation` VALUES (94, 5, 24); -INSERT INTO `ums_role_menu_relation` VALUES (95, 5, 25); -INSERT INTO `ums_role_menu_relation` VALUES (121, 1, 1); -INSERT INTO `ums_role_menu_relation` VALUES (122, 1, 2); -INSERT INTO `ums_role_menu_relation` VALUES (123, 1, 3); -INSERT INTO `ums_role_menu_relation` VALUES (124, 1, 4); -INSERT INTO `ums_role_menu_relation` VALUES (125, 1, 5); -INSERT INTO `ums_role_menu_relation` VALUES (126, 1, 6); - --- ---------------------------- --- Table structure for ums_role_permission_relation --- ---------------------------- -DROP TABLE IF EXISTS `ums_role_permission_relation`; -CREATE TABLE `ums_role_permission_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `role_id` bigint(20) NULL DEFAULT NULL, - `permission_id` bigint(20) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户角色和权限关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_role_permission_relation --- ---------------------------- -INSERT INTO `ums_role_permission_relation` VALUES (1, 1, 1); -INSERT INTO `ums_role_permission_relation` VALUES (2, 1, 2); -INSERT INTO `ums_role_permission_relation` VALUES (3, 1, 3); -INSERT INTO `ums_role_permission_relation` VALUES (4, 1, 7); -INSERT INTO `ums_role_permission_relation` VALUES (5, 1, 8); -INSERT INTO `ums_role_permission_relation` VALUES (6, 2, 4); -INSERT INTO `ums_role_permission_relation` VALUES (7, 2, 9); -INSERT INTO `ums_role_permission_relation` VALUES (8, 2, 10); -INSERT INTO `ums_role_permission_relation` VALUES (9, 2, 11); -INSERT INTO `ums_role_permission_relation` VALUES (10, 3, 5); -INSERT INTO `ums_role_permission_relation` VALUES (11, 3, 12); -INSERT INTO `ums_role_permission_relation` VALUES (12, 3, 13); -INSERT INTO `ums_role_permission_relation` VALUES (13, 3, 14); -INSERT INTO `ums_role_permission_relation` VALUES (14, 4, 6); -INSERT INTO `ums_role_permission_relation` VALUES (15, 4, 15); -INSERT INTO `ums_role_permission_relation` VALUES (16, 4, 16); -INSERT INTO `ums_role_permission_relation` VALUES (17, 4, 17); - --- ---------------------------- --- Table structure for ums_role_resource_relation --- ---------------------------- -DROP TABLE IF EXISTS `ums_role_resource_relation`; -CREATE TABLE `ums_role_resource_relation` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID', - `resource_id` bigint(20) NULL DEFAULT NULL COMMENT '资源ID', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 249 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台角色资源关系表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of ums_role_resource_relation --- ---------------------------- -INSERT INTO `ums_role_resource_relation` VALUES (194, 5, 1); -INSERT INTO `ums_role_resource_relation` VALUES (195, 5, 2); -INSERT INTO `ums_role_resource_relation` VALUES (196, 5, 3); -INSERT INTO `ums_role_resource_relation` VALUES (197, 5, 4); -INSERT INTO `ums_role_resource_relation` VALUES (198, 5, 5); -INSERT INTO `ums_role_resource_relation` VALUES (199, 5, 6); -INSERT INTO `ums_role_resource_relation` VALUES (200, 5, 8); -INSERT INTO `ums_role_resource_relation` VALUES (201, 5, 9); -INSERT INTO `ums_role_resource_relation` VALUES (202, 5, 10); -INSERT INTO `ums_role_resource_relation` VALUES (203, 5, 11); -INSERT INTO `ums_role_resource_relation` VALUES (204, 5, 12); -INSERT INTO `ums_role_resource_relation` VALUES (205, 5, 13); -INSERT INTO `ums_role_resource_relation` VALUES (206, 5, 14); -INSERT INTO `ums_role_resource_relation` VALUES (207, 5, 15); -INSERT INTO `ums_role_resource_relation` VALUES (208, 5, 16); -INSERT INTO `ums_role_resource_relation` VALUES (209, 5, 17); -INSERT INTO `ums_role_resource_relation` VALUES (210, 5, 18); -INSERT INTO `ums_role_resource_relation` VALUES (211, 5, 19); -INSERT INTO `ums_role_resource_relation` VALUES (212, 5, 20); -INSERT INTO `ums_role_resource_relation` VALUES (213, 5, 21); -INSERT INTO `ums_role_resource_relation` VALUES (214, 5, 22); -INSERT INTO `ums_role_resource_relation` VALUES (215, 5, 23); -INSERT INTO `ums_role_resource_relation` VALUES (216, 5, 24); -INSERT INTO `ums_role_resource_relation` VALUES (217, 5, 25); -INSERT INTO `ums_role_resource_relation` VALUES (218, 5, 26); -INSERT INTO `ums_role_resource_relation` VALUES (219, 5, 27); -INSERT INTO `ums_role_resource_relation` VALUES (220, 5, 28); -INSERT INTO `ums_role_resource_relation` VALUES (221, 5, 29); -INSERT INTO `ums_role_resource_relation` VALUES (222, 5, 30); -INSERT INTO `ums_role_resource_relation` VALUES (232, 2, 8); -INSERT INTO `ums_role_resource_relation` VALUES (233, 2, 9); -INSERT INTO `ums_role_resource_relation` VALUES (234, 2, 10); -INSERT INTO `ums_role_resource_relation` VALUES (235, 2, 11); -INSERT INTO `ums_role_resource_relation` VALUES (236, 2, 12); -INSERT INTO `ums_role_resource_relation` VALUES (237, 2, 31); -INSERT INTO `ums_role_resource_relation` VALUES (238, 2, 32); -INSERT INTO `ums_role_resource_relation` VALUES (239, 1, 1); -INSERT INTO `ums_role_resource_relation` VALUES (240, 1, 2); -INSERT INTO `ums_role_resource_relation` VALUES (241, 1, 3); -INSERT INTO `ums_role_resource_relation` VALUES (242, 1, 4); -INSERT INTO `ums_role_resource_relation` VALUES (243, 1, 5); -INSERT INTO `ums_role_resource_relation` VALUES (244, 1, 6); -INSERT INTO `ums_role_resource_relation` VALUES (245, 1, 23); -INSERT INTO `ums_role_resource_relation` VALUES (246, 1, 24); -INSERT INTO `ums_role_resource_relation` VALUES (247, 1, 31); -INSERT INTO `ums_role_resource_relation` VALUES (248, 1, 32); - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/document/sql/mall_tiny.sql b/document/sql/mall_tiny.sql index 17f6a4db..b9bb0af8 100644 --- a/document/sql/mall_tiny.sql +++ b/document/sql/mall_tiny.sql @@ -1,507 +1,738 @@ /* -Navicat MySQL Data Transfer + Navicat Premium Data Transfer -Source Server : localhost -Source Server Version : 50719 -Source Host : localhost:3306 -Source Database : mall_tiny + Source Server : localhost + Source Server Type : MySQL + Source Server Version : 50719 + Source Host : localhost:3306 + Source Schema : mall_tiny -Target Server Type : MYSQL -Target Server Version : 50719 -File Encoding : 65001 + Target Server Type : MySQL + Target Server Version : 50719 + File Encoding : 65001 -Date: 2019-08-04 15:31:57 + Date: 08/12/2022 16:02:33 */ -SET FOREIGN_KEY_CHECKS=0; +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for pms_brand -- ---------------------------- DROP TABLE IF EXISTS `pms_brand`; -CREATE TABLE `pms_brand` ( +CREATE TABLE `pms_brand` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(64) DEFAULT NULL, - `first_letter` varchar(8) DEFAULT NULL COMMENT '首字母', - `sort` int(11) DEFAULT NULL, - `factory_status` int(1) DEFAULT NULL COMMENT '是否为品牌制造商:0->不是;1->是', - `show_status` int(1) DEFAULT NULL, - `product_count` int(11) DEFAULT NULL COMMENT '产品数量', - `product_comment_count` int(11) DEFAULT NULL COMMENT '产品评论数量', - `logo` varchar(255) DEFAULT NULL COMMENT '品牌logo', - `big_pic` varchar(255) DEFAULT NULL COMMENT '专区大图', - `brand_story` text COMMENT '品牌故事', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 COMMENT='品牌表'; + `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `first_letter` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '首字母', + `sort` int(11) NULL DEFAULT NULL, + `factory_status` int(1) NULL DEFAULT NULL COMMENT '是否为品牌制造商:0->不是;1->是', + `show_status` int(1) NULL DEFAULT NULL, + `product_count` int(11) NULL DEFAULT NULL COMMENT '产品数量', + `product_comment_count` int(11) NULL DEFAULT NULL COMMENT '产品评论数量', + `logo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '品牌logo', + `big_pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专区大图', + `brand_story` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '品牌故事', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 60 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '品牌表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of pms_brand -- ---------------------------- -INSERT INTO `pms_brand` VALUES ('1', '万和', 'W', '0', '1', '1', '100', '100', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg(5).jpg', '', 'Victoria\'s Secret的故事'); -INSERT INTO `pms_brand` VALUES ('2', '三星', 'S', '100', '1', '1', '100', '100', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg (1).jpg', null, '三星的故事'); -INSERT INTO `pms_brand` VALUES ('3', '华为', 'H', '100', '1', '1', '100', '100', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/17f2dd9756d9d333bee8e60ce8c03e4c_222_222.jpg', null, 'Victoria\'s Secret的故事'); -INSERT INTO `pms_brand` VALUES ('4', '格力', 'G', '30', '1', '1', '100', '100', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/dc794e7e74121272bbe3ce9bc41ec8c3_222_222.jpg', null, 'Victoria\'s Secret的故事'); -INSERT INTO `pms_brand` VALUES ('5', '方太', 'F', '20', '1', '1', '100', '100', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg (4).jpg', null, 'Victoria\'s Secret的故事'); -INSERT INTO `pms_brand` VALUES ('6', '小米', 'M', '500', '1', '1', '100', '100', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/1e34aef2a409119018a4c6258e39ecfb_222_222.png', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180518/5afd7778Nf7800b75.jpg', '小米手机的故事'); -INSERT INTO `pms_brand` VALUES ('21', 'OPPO', 'O', '0', '1', '1', '88', '500', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg(6).jpg', '', 'string'); -INSERT INTO `pms_brand` VALUES ('49', '七匹狼', 'S', '200', '1', '1', '77', '400', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/18d8bc3eb13533fab466d702a0d3fd1f40345bcd.jpg', null, 'BOOB的故事'); -INSERT INTO `pms_brand` VALUES ('50', '海澜之家', 'H', '200', '1', '1', '66', '300', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/99d3279f1029d32b929343b09d3c72de_222_222.jpg', '', '海澜之家的故事'); -INSERT INTO `pms_brand` VALUES ('51', '苹果', 'A', '200', '1', '1', '55', '200', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg.jpg', null, '苹果的故事'); -INSERT INTO `pms_brand` VALUES ('58', 'NIKE', 'N', '0', '1', '1', '33', '100', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/timg (51).jpg', '', 'NIKE的故事'); +INSERT INTO `pms_brand` VALUES (1, '万和', 'W', 0, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5b07ca8aN4e127d2f.jpg', 'http://img13.360buyimg.com/cms/jfs/t1/121860/35/2430/187800/5ec4e294E22f3ffcc/1e233b65b94ba192.jpg', '万和成立于1993年8月,总部位于广东顺德国家级高新技术开发区内,是国内生产规模最大的燃气具专业制造企业,也是中国燃气具发展战略的首倡者和推动者、中国五金制品协会燃气用具分会第三届理事长单位。'); +INSERT INTO `pms_brand` VALUES (2, '三星', 'S', 100, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/57201b47N7bf15715.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_banner_01.png', '三星集团(英文:SAMSUNG、韩文:삼성)是韩国最大的跨国企业集团,三星集团包括众多的国际下属企业,旗下子公司有:三星电子、三星物产、三星人寿保险等,业务涉及电子、金融、机械、化学等众多领域。'); +INSERT INTO `pms_brand` VALUES (3, '华为', 'H', 100, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5abf6f26N31658aa2.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/huawei_banner_01.png', '荣耀品牌成立于2013年,是华为旗下手机双品牌之一。荣耀以“创新、品质、服务”为核心战略,为全球年轻人提供潮酷的全场景智能化体验,打造年轻人向往的先锋文化和潮流生活方式'); +INSERT INTO `pms_brand` VALUES (4, '格力', 'G', 30, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg (3).jpg', NULL, 'Victoria\'s Secret的故事'); +INSERT INTO `pms_brand` VALUES (5, '方太', 'F', 20, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg (4).jpg', NULL, 'Victoria\'s Secret的故事'); +INSERT INTO `pms_brand` VALUES (6, '小米', 'M', 500, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5565f5a2N0b8169ae.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/xiaomi_banner_01.png', '小米公司正式成立于2010年4月,是一家专注于高端智能手机、互联网电视自主研发的创新型科技企业。主要由前谷歌、微软、摩托、金山等知名公司的顶尖人才组建。'); +INSERT INTO `pms_brand` VALUES (21, 'OPPO', 'O', 0, 1, 1, 88, 500, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg(6).jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_banner_01.png', 'OPPO于2008年推出第一款“笑脸手机”,由此开启探索和引领至美科技之旅。今天,OPPO凭借以Find和R系列手机为核心的智能终端产品,以及OPPO+等互联网服务,让全球消费者尽享至美科技。'); +INSERT INTO `pms_brand` VALUES (49, '七匹狼', 'S', 200, 1, 1, 77, 400, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/qipilang.png', NULL, 'BOOB的故事'); +INSERT INTO `pms_brand` VALUES (50, '海澜之家', 'H', 200, 1, 1, 66, 300, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a5c69b9N5d6c5696.jpg', 'http://img10.360buyimg.com/cms/jfs/t1/133148/4/1605/470028/5edaf5ccEd7a687a9/e0a007631361ff75.jpg', '“海澜之家”(英文缩写:HLA)是海澜之家股份有限公司旗下的服装品牌,总部位于中国江苏省无锡市江阴市,主要采用连锁零售的模式,销售男性服装、配饰与相关产品。'); +INSERT INTO `pms_brand` VALUES (51, '苹果', 'A', 200, 1, 1, 55, 200, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/49b30bb0377030d1.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/apple_banner_01.png', '苹果公司(Apple Inc. )是美国的一家高科技公司。 由史蒂夫·乔布斯、斯蒂夫·沃兹尼亚克和罗·韦恩(Ron Wayne)等人于1976年4月1日创立,并命名为美国苹果电脑公司(Apple Computer Inc. ),2007年1月9日更名为苹果公司,总部位于加利福尼亚州的...'); +INSERT INTO `pms_brand` VALUES (58, 'NIKE', 'N', 0, 1, 0, 33, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/timg (51).jpg', '', 'NIKE的故事'); +INSERT INTO `pms_brand` VALUES (59, '测试品牌', 'C', 0, 0, 0, NULL, NULL, 'http://localhost:9000/mall/20220609/Snipaste_2022-06-08_14-35-53.png', 'http://localhost:9000/mall/20220609/biji_05.jpg', '12345'); -- ---------------------------- -- Table structure for pms_product -- ---------------------------- DROP TABLE IF EXISTS `pms_product`; -CREATE TABLE `pms_product` ( +CREATE TABLE `pms_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `brand_id` bigint(20) DEFAULT NULL, - `product_category_id` bigint(20) DEFAULT NULL, - `feight_template_id` bigint(20) DEFAULT NULL, - `product_attribute_category_id` bigint(20) DEFAULT NULL, - `name` varchar(64) NOT NULL, - `pic` varchar(255) DEFAULT NULL, - `product_sn` varchar(64) NOT NULL COMMENT '货号', - `delete_status` int(1) DEFAULT NULL COMMENT '删除状态:0->未删除;1->已删除', - `publish_status` int(1) DEFAULT NULL COMMENT '上架状态:0->下架;1->上架', - `new_status` int(1) DEFAULT NULL COMMENT '新品状态:0->不是新品;1->新品', - `recommand_status` int(1) DEFAULT NULL COMMENT '推荐状态;0->不推荐;1->推荐', - `verify_status` int(1) DEFAULT NULL COMMENT '审核状态:0->未审核;1->审核通过', - `sort` int(11) DEFAULT NULL COMMENT '排序', - `sale` int(11) DEFAULT NULL COMMENT '销量', - `price` decimal(10,2) DEFAULT NULL, - `promotion_price` decimal(10,2) DEFAULT NULL COMMENT '促销价格', - `gift_growth` int(11) DEFAULT '0' COMMENT '赠送的成长值', - `gift_point` int(11) DEFAULT '0' COMMENT '赠送的积分', - `use_point_limit` int(11) DEFAULT NULL COMMENT '限制使用的积分数', - `sub_title` varchar(255) DEFAULT NULL COMMENT '副标题', - `description` text COMMENT '商品描述', - `original_price` decimal(10,2) DEFAULT NULL COMMENT '市场价', - `stock` int(11) DEFAULT NULL COMMENT '库存', - `low_stock` int(11) DEFAULT NULL COMMENT '库存预警值', - `unit` varchar(16) DEFAULT NULL COMMENT '单位', - `weight` decimal(10,2) DEFAULT NULL COMMENT '商品重量,默认为克', - `preview_status` int(1) DEFAULT NULL COMMENT '是否为预告商品:0->不是;1->是', - `service_ids` varchar(64) DEFAULT NULL COMMENT '以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮', - `keywords` varchar(255) DEFAULT NULL, - `note` varchar(255) DEFAULT NULL, - `album_pics` varchar(255) DEFAULT NULL COMMENT '画册图片,连产品图片限制为5张,以逗号分割', - `detail_title` varchar(255) DEFAULT NULL, - `detail_desc` text, - `detail_html` text COMMENT '产品详情网页内容', - `detail_mobile_html` text COMMENT '移动端网页详情', - `promotion_start_time` datetime DEFAULT NULL COMMENT '促销开始时间', - `promotion_end_time` datetime DEFAULT NULL COMMENT '促销结束时间', - `promotion_per_limit` int(11) DEFAULT NULL COMMENT '活动限购数量', - `promotion_type` int(1) DEFAULT NULL COMMENT '促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购', - `brand_name` varchar(255) DEFAULT NULL COMMENT '品牌名称', - `product_category_name` varchar(255) DEFAULT NULL COMMENT '商品分类名称', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='商品信息'; + `brand_id` bigint(20) NULL DEFAULT NULL, + `product_category_id` bigint(20) NULL DEFAULT NULL, + `feight_template_id` bigint(20) NULL DEFAULT NULL, + `product_attribute_category_id` bigint(20) NULL DEFAULT NULL, + `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `product_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '货号', + `delete_status` int(1) NULL DEFAULT NULL COMMENT '删除状态:0->未删除;1->已删除', + `publish_status` int(1) NULL DEFAULT NULL COMMENT '上架状态:0->下架;1->上架', + `new_status` int(1) NULL DEFAULT NULL COMMENT '新品状态:0->不是新品;1->新品', + `recommand_status` int(1) NULL DEFAULT NULL COMMENT '推荐状态;0->不推荐;1->推荐', + `verify_status` int(1) NULL DEFAULT NULL COMMENT '审核状态:0->未审核;1->审核通过', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `sale` int(11) NULL DEFAULT NULL COMMENT '销量', + `price` decimal(10, 2) NULL DEFAULT NULL, + `promotion_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '促销价格', + `gift_growth` int(11) NULL DEFAULT 0 COMMENT '赠送的成长值', + `gift_point` int(11) NULL DEFAULT 0 COMMENT '赠送的积分', + `use_point_limit` int(11) NULL DEFAULT NULL COMMENT '限制使用的积分数', + `sub_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '副标题', + `description` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '商品描述', + `original_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '市场价', + `stock` int(11) NULL DEFAULT NULL COMMENT '库存', + `low_stock` int(11) NULL DEFAULT NULL COMMENT '库存预警值', + `unit` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位', + `weight` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品重量,默认为克', + `preview_status` int(1) NULL DEFAULT NULL COMMENT '是否为预告商品:0->不是;1->是', + `service_ids` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮', + `keywords` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `note` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `album_pics` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '画册图片,连产品图片限制为5张,以逗号分割', + `detail_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `detail_desc` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL, + `detail_html` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '产品详情网页内容', + `detail_mobile_html` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '移动端网页详情', + `promotion_start_time` datetime NULL DEFAULT NULL COMMENT '促销开始时间', + `promotion_end_time` datetime NULL DEFAULT NULL COMMENT '促销结束时间', + `promotion_per_limit` int(11) NULL DEFAULT NULL COMMENT '活动限购数量', + `promotion_type` int(1) NULL DEFAULT NULL COMMENT '促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购', + `brand_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '品牌名称', + `product_category_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品分类名称', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 46 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品信息' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of pms_product -- ---------------------------- -INSERT INTO `pms_product` VALUES ('1', '49', '7', '0', '0', '银色星芒刺绣网纱底裤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '1', '1', '1', '1', '100', '0', '100.00', null, '0', '100', null, '111', '111', '120.00', '100', '20', '件', '1000.00', '0', null, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', null, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', null, null, null, '0', '七匹狼', '外套'); -INSERT INTO `pms_product` VALUES ('2', '49', '7', '0', '0', '银色星芒刺绣网纱底裤2', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86578', '1', '1', '1', '1', '1', '1', '0', '100.00', null, '0', '100', null, '111', '111', '120.00', '100', '20', '件', '1000.00', '0', null, '银色星芒刺绣网纱底裤2', '银色星芒刺绣网纱底裤', null, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '

银色星芒刺绣网纱底裤

', '

银色星芒刺绣网纱底裤

', null, null, null, '0', '七匹狼', '外套'); -INSERT INTO `pms_product` VALUES ('3', '1', '7', '0', '0', '银色星芒刺绣网纱底裤3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86579', '1', '1', '1', '1', '1', '1', '0', '100.00', null, '0', '100', null, '111', '111', '120.00', '100', '20', '件', '1000.00', '0', null, '银色星芒刺绣网纱底裤3', '银色星芒刺绣网纱底裤', null, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', null, null, null, '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('4', '1', '7', '0', '0', '银色星芒刺绣网纱底裤4', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86580', '1', '1', '1', '1', '1', '1', '0', '100.00', null, '0', '100', null, '111', '111', '120.00', '100', '20', '件', '1000.00', '0', null, '银色星芒刺绣网纱底裤4', '银色星芒刺绣网纱底裤', null, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', null, null, null, '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('5', '1', '7', '0', '0', '银色星芒刺绣网纱底裤5', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86581', '1', '0', '1', '1', '1', '1', '0', '100.00', null, '0', '100', null, '111', '111', '120.00', '100', '20', '件', '1000.00', '0', null, '银色星芒刺绣网纱底裤5', '银色星芒刺绣网纱底裤', null, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', null, null, null, '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('6', '1', '7', '0', '0', '银色星芒刺绣网纱底裤6', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86582', '1', '1', '1', '1', '1', '1', '0', '100.00', null, '0', '100', null, '111', '111', '120.00', '100', '20', '件', '1000.00', '0', null, '银色星芒刺绣网纱底裤6', '银色星芒刺绣网纱底裤', null, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', null, null, null, '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('7', '1', '7', '0', '1', '女式超柔软拉毛运动开衫', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '0', '0', '0', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('8', '1', '7', '0', '1', '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '0', '0', '0', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('9', '1', '7', '0', '1', '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '0', '0', '0', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('10', '1', '7', '0', '1', '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '0', '0', '0', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('11', '1', '7', '0', '1', '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '1', '0', '1', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('12', '1', '7', '0', '1', '女式超柔软拉毛运动开衫2', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '1', '0', '1', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('13', '1', '7', '0', '1', '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '1', '0', '1', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('14', '1', '7', '0', '1', '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '0', '0', '1', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('18', '1', '7', '0', '1', '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', '1', '0', '0', '1', '0', '0', '0', '249.00', '0.00', '0', '100', '0', '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', '299.00', '100', '0', '件', '0.00', '0', 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', '0', '0', '万和', '外套'); -INSERT INTO `pms_product` VALUES ('22', '6', '7', '0', '1', 'test', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', '', '1', '1', '0', '0', '0', '0', '0', '0.00', null, '0', '0', '0', 'test', '', '0.00', '100', '0', '', '0.00', '1', '1,2', '', '', '', '', '', '', '', null, null, '0', '0', '小米', '外套'); -INSERT INTO `pms_product` VALUES ('23', '6', '19', '0', '1', '毛衫测试', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', 'NO.1098', '1', '1', '1', '1', '0', '0', '0', '99.00', null, '99', '99', '1000', '毛衫测试11', 'xxx', '109.00', '100', '0', '件', '1000.00', '1', '1,2,3', '毛衫测试', '毛衫测试', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', '毛衫测试', '毛衫测试', '

', '', null, null, '0', '2', '小米', '手机通讯'); -INSERT INTO `pms_product` VALUES ('24', '6', '7', '0', null, 'xxx', '', '', '1', '0', '0', '0', '0', '0', '0', '0.00', null, '0', '0', '0', 'xxx', '', '0.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', '小米', '外套'); -INSERT INTO `pms_product` VALUES ('26', '3', '19', '0', '3', '华为 HUAWEI P20 ', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '6946605', '0', '1', '1', '1', '0', '100', '0', '3788.00', null, '3788', '3788', '0', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '', '4288.00', '1000', '0', '件', '0.00', '1', '2,3,1', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ab46a3cN616bdc41.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf5fN2522b9dc.jpg', '', '', '

', '', null, null, '0', '1', '华为', '手机通讯'); -INSERT INTO `pms_product` VALUES ('27', '6', '19', '0', '3', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '7437788', '0', '1', '1', '1', '0', '0', '0', '2699.00', null, '2699', '2699', '0', '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '2699.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '

', '', null, null, '0', '3', '小米', '手机通讯'); -INSERT INTO `pms_product` VALUES ('28', '6', '19', '0', '3', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '7437789', '0', '1', '1', '1', '0', '0', '0', '649.00', null, '649', '649', '0', '8天超长待机,137g轻巧机身,高通骁龙处理器小米6X低至1299,点击抢购', '', '649.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '4', '小米', '手机通讯'); -INSERT INTO `pms_product` VALUES ('29', '51', '19', '0', '3', 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', '7437799', '0', '1', '1', '0', '0', '0', '0', '5499.00', null, '5499', '5499', '0', '【限时限量抢购】Apple产品年中狂欢节,好物尽享,美在智慧!速来 >> 勾选[保障服务][原厂保2年],获得AppleCare+全方位服务计划,原厂延保售后无忧。', '', '5499.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', '苹果', '手机通讯'); -INSERT INTO `pms_product` VALUES ('30', '50', '8', '0', '1', 'HLA海澜之家简约动物印花短袖T恤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5ad83a4fN6ff67ecd.jpg!cc_350x449.jpg', 'HNTBJ2E042A', '0', '1', '1', '1', '0', '0', '0', '98.00', null, '0', '0', '0', '2018夏季新品微弹舒适新款短T男生 6月6日-6月20日,满300减30,参与互动赢百元礼券,立即分享赢大奖', '', '98.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', '海澜之家', 'T恤'); -INSERT INTO `pms_product` VALUES ('31', '50', '8', '0', '1', 'HLA海澜之家蓝灰花纹圆领针织布短袖T恤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5ac98b64N70acd82f.jpg!cc_350x449.jpg', 'HNTBJ2E080A', '0', '1', '0', '0', '0', '0', '0', '98.00', null, '0', '0', '0', '2018夏季新品短袖T恤男HNTBJ2E080A 蓝灰花纹80 175/92A/L80A 蓝灰花纹80 175/92A/L', '', '98.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', '海澜之家', 'T恤'); -INSERT INTO `pms_product` VALUES ('32', '50', '8', '0', null, 'HLA海澜之家短袖T恤男基础款', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a51eb88Na4797877.jpg', 'HNTBJ2E153A', '0', '1', '0', '0', '0', '0', '0', '68.00', null, '0', '0', '0', 'HLA海澜之家短袖T恤男基础款简约圆领HNTBJ2E153A藏青(F3)175/92A(50)', '', '68.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', '海澜之家', 'T恤'); -INSERT INTO `pms_product` VALUES ('33', '6', '35', '0', null, '小米(MI)小米电视4A ', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b02804dN66004d73.jpg', '4609652', '0', '1', '0', '0', '0', '0', '0', '2499.00', null, '0', '0', '0', '小米(MI)小米电视4A 55英寸 L55M5-AZ/L55M5-AD 2GB+8GB HDR 4K超高清 人工智能网络液晶平板电视', '', '2499.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', '小米', '手机数码'); -INSERT INTO `pms_product` VALUES ('34', '6', '35', '0', null, '小米(MI)小米电视4A 65英寸', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b028530N51eee7d4.jpg', '4609660', '0', '1', '0', '0', '0', '0', '0', '3999.00', null, '0', '0', '0', ' L65M5-AZ/L65M5-AD 2GB+8GB HDR 4K超高清 人工智能网络液晶平板电视', '', '3999.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', '小米', '手机数码'); -INSERT INTO `pms_product` VALUES ('35', '58', '29', '0', null, '耐克NIKE 男子 休闲鞋 ROSHE RUN 运动鞋 511881-010黑色41码', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b235bb9Nf606460b.jpg', '6799342', '0', '1', '0', '0', '0', '0', '0', '369.00', null, '0', '0', '0', '耐克NIKE 男子 休闲鞋 ROSHE RUN 运动鞋 511881-010黑色41码', '', '369.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', 'NIKE', '男鞋'); -INSERT INTO `pms_product` VALUES ('36', '58', '29', '0', null, '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '6799345', '0', '1', '1', '1', '0', '0', '0', '499.00', null, '0', '0', '0', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '', '499.00', '100', '0', '', '0.00', '0', '', '', '', '', '', '', '', '', null, null, '0', '0', 'NIKE', '男鞋'); +INSERT INTO `pms_product` VALUES (1, 49, 7, 0, 0, '银色星芒刺绣网纱底裤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 1, 1, 1, 100, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '七匹狼', '外套'); +INSERT INTO `pms_product` VALUES (2, 49, 7, 0, 0, '银色星芒刺绣网纱底裤2', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86578', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤2', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '

银色星芒刺绣网纱底裤

', '

银色星芒刺绣网纱底裤

', NULL, NULL, NULL, 0, '七匹狼', '外套'); +INSERT INTO `pms_product` VALUES (3, 1, 7, 0, 0, '银色星芒刺绣网纱底裤3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86579', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤3', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (4, 1, 7, 0, 0, '银色星芒刺绣网纱底裤4', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86580', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤4', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (5, 1, 7, 0, 0, '银色星芒刺绣网纱底裤5', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86581', 1, 0, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤5', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (6, 1, 7, 0, 0, '银色星芒刺绣网纱底裤6', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86582', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤6', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (7, 1, 7, 0, 1, '女式超柔软拉毛运动开衫', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (8, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (9, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (10, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (11, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (12, 1, 7, 0, 1, '女式超柔软拉毛运动开衫2', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (13, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (14, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (18, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁,垂感质地', '匠心剪裁,垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套'); +INSERT INTO `pms_product` VALUES (22, 6, 7, 0, 1, 'test', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', '', 1, 1, 0, 0, 0, 0, 0, 0.00, NULL, 0, 0, 0, 'test', '', 0.00, 100, 0, '', 0.00, 1, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '外套'); +INSERT INTO `pms_product` VALUES (23, 6, 19, 0, 1, '毛衫测试', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', 'NO.1098', 1, 1, 1, 1, 0, 0, 0, 99.00, NULL, 99, 99, 1000, '毛衫测试11', 'xxx', 109.00, 100, 0, '件', 1000.00, 1, '1,2,3', '毛衫测试', '毛衫测试', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', '毛衫测试', '毛衫测试', '

', '', NULL, NULL, 0, 2, '小米', '手机数码'); +INSERT INTO `pms_product` VALUES (24, 6, 7, 0, NULL, 'xxx', '', '', 1, 0, 0, 0, 0, 0, 0, 0.00, NULL, 0, 0, 0, 'xxx', '', 0.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '外套'); +INSERT INTO `pms_product` VALUES (26, 3, 19, 0, 3, '华为 HUAWEI P20 ', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '6946605', 0, 1, 1, 1, 0, 100, 100, 3788.00, NULL, 3788, 3788, 0, 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '', 4288.00, 1000, 0, '件', 0.00, 1, '2,3,1', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ab46a3cN616bdc41.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf5fN2522b9dc.jpg', '', '', '

', '

\"\"

\n

\"\"

', NULL, NULL, 0, 4, '华为', '手机通讯'); +INSERT INTO `pms_product` VALUES (27, 6, 19, 0, 3, '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '7437788', 0, 1, 1, 1, 0, 0, 99, 2699.00, NULL, 2699, 2699, 0, '骁龙845处理器,红外人脸解锁,AI变焦双摄,AI语音助手小米6X低至1299,点击抢购', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', 2699.00, 100, 0, '', 0.00, 0, '1', '', '', '', '', '', '

', '

', NULL, NULL, 0, 3, '小米', '手机通讯'); +INSERT INTO `pms_product` VALUES (28, 6, 19, 0, 3, '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '7437789', 0, 1, 1, 1, 0, 0, 98, 649.00, NULL, 649, 649, 0, '8天超长待机,137g轻巧机身,高通骁龙处理器小米6X低至1299,点击抢购', '', 649.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '
\n

 

\n
', NULL, NULL, 0, 4, '小米', '手机通讯'); +INSERT INTO `pms_product` VALUES (29, 51, 19, 0, 3, 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', '7437799', 0, 1, 1, 1, 0, 0, 97, 5499.00, 4799.00, 5499, 5499, 0, '【限时限量抢购】Apple产品年中狂欢节,好物尽享,美在智慧!速来 >> 勾选[保障服务][原厂保2年],获得AppleCare+全方位服务计划,原厂延保售后无忧。', '', 5499.00, 100, 0, '', 0.00, 0, '1,2,3', '', '', '', '', '', '', '
', '2020-05-04 15:12:54', '2020-05-30 00:00:00', 0, 1, '苹果', '手机通讯'); +INSERT INTO `pms_product` VALUES (30, 50, 8, 0, 1, 'HLA海澜之家简约动物印花短袖T恤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5ad83a4fN6ff67ecd.jpg!cc_350x449.jpg', 'HNTBJ2E042A', 0, 1, 1, 1, 0, 0, 0, 98.00, NULL, 0, 0, 0, '2018夏季新品微弹舒适新款短T男生 6月6日-6月20日,满300减30,参与互动赢百元礼券,立即分享赢大奖', '', 98.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤'); +INSERT INTO `pms_product` VALUES (31, 50, 8, 0, 1, 'HLA海澜之家蓝灰花纹圆领针织布短袖T恤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5ac98b64N70acd82f.jpg!cc_350x449.jpg', 'HNTBJ2E080A', 0, 1, 0, 0, 0, 0, 0, 98.00, NULL, 0, 0, 0, '2018夏季新品短袖T恤男HNTBJ2E080A 蓝灰花纹80 175/92A/L80A 蓝灰花纹80 175/92A/L', '', 98.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤'); +INSERT INTO `pms_product` VALUES (32, 50, 8, 0, 1, 'HLA海澜之家短袖T恤男基础款', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a51eb88Na4797877.jpg', 'HNTBJ2E153A', 0, 1, 0, 0, 0, 0, 0, 68.00, NULL, 0, 0, 0, 'HLA海澜之家短袖T恤男基础款简约圆领HNTBJ2E153A藏青(F3)175/92A(50)', '', 68.00, 100, 0, '', 0.00, 0, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤'); +INSERT INTO `pms_product` VALUES (33, 6, 35, 0, 12, '小米(MI)小米电视4A ', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b02804dN66004d73.jpg', '4609652', 0, 1, 0, 0, 0, 0, 0, 2499.00, NULL, 0, 0, 0, '小米(MI)小米电视4A 55英寸 L55M5-AZ/L55M5-AD 2GB+8GB HDR 4K超高清 人工智能网络液晶平板电视', '', 2499.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '电视'); +INSERT INTO `pms_product` VALUES (34, 6, 35, 0, 12, '小米(MI)小米电视4A 65英寸', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b028530N51eee7d4.jpg', '4609660', 0, 1, 0, 0, 0, 0, 0, 3999.00, NULL, 0, 0, 0, ' L65M5-AZ/L65M5-AD 2GB+8GB HDR 4K超高清 人工智能网络液晶平板电视', '', 3999.00, 100, 0, '', 0.00, 0, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '电视'); +INSERT INTO `pms_product` VALUES (35, 58, 29, 0, 11, '耐克NIKE 男子 休闲鞋 ROSHE RUN 运动鞋 511881-010黑色41码', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b235bb9Nf606460b.jpg', '6799342', 0, 1, 0, 0, 0, 0, 0, 369.00, NULL, 0, 0, 0, '耐克NIKE 男子 休闲鞋 ROSHE RUN 运动鞋 511881-010黑色41码', '', 369.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, 'NIKE', '男鞋'); +INSERT INTO `pms_product` VALUES (36, 58, 29, 0, 11, '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '6799345', 0, 1, 1, 1, 0, 0, 0, 499.00, NULL, 0, 0, 0, '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '', 499.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, 'NIKE', '男鞋'); +INSERT INTO `pms_product` VALUES (37, 51, 19, 0, 3, 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', '100038005189', 0, 1, 0, 0, 0, 200, 0, 5999.00, NULL, 0, 0, 0, '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元!!!部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券!!!猛戳 ', '', 5999.00, 1000, 0, '', 208.00, 0, '1,2,3', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', '', '', '', '
', NULL, NULL, 0, 0, '苹果', '手机通讯'); +INSERT INTO `pms_product` VALUES (38, 51, 53, 0, 3, 'Apple iPad 10.9英寸平板电脑 2022年款', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', '100044025833', 0, 1, 0, 0, 0, 0, 0, 3599.00, NULL, 0, 0, 0, '【11.11大爱超大爱】iPad9代限量抢购,价格优惠,更享以旧换新至高补贴325元!!快来抢购吧!! ', '', 3599.00, 1000, 0, '', 0.00, 0, '1,2,3', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_002.jpg', '', '', '', '
', NULL, NULL, 0, 0, '苹果', '平板电脑'); +INSERT INTO `pms_product` VALUES (39, 6, 54, 0, 13, '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '100023207945', 0, 1, 0, 1, 0, 0, 0, 5599.00, NULL, 0, 0, 0, '【双十一大促来袭】指定型号至高优惠1000,以旧换新至高补贴1000元,晒单赢好礼', '', 5599.00, 500, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_002.jpg', '', '', '', '
\n
\n
 
\n
 
\n
\n
 
\n
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
 
\n
', NULL, NULL, 0, 0, '小米', '笔记本'); +INSERT INTO `pms_product` VALUES (40, 6, 19, 0, 3, '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '100027789721', 0, 1, 0, 1, 0, 0, 0, 2999.00, NULL, 0, 0, 0, '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra,戳】 ', '', 2999.00, 500, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_02.jpg', '', '', '', '

', NULL, NULL, 0, 0, '小米', '手机通讯'); +INSERT INTO `pms_product` VALUES (41, 6, 19, 0, 3, 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', '100035246702', 0, 1, 0, 0, 0, 0, 0, 2099.00, NULL, 0, 0, 0, '【品质好物】天玑8100,2K直屏,5500mAh大电量【Note12Pro火热抢购中】 ', '', 2099.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_02.jpg', '', '', '', '

', NULL, NULL, 0, 0, '小米', '手机通讯'); +INSERT INTO `pms_product` VALUES (42, 3, 19, 0, 3, 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', '100035295081', 0, 1, 0, 0, 0, 0, 0, 4999.00, NULL, 0, 0, 0, '【华为Mate50新品上市】内置66W华为充电套装,超光变XMAGE影像,北斗卫星消息,鸿蒙操作系统3.0!立即抢购!华为新品可持续计划,猛戳》 ', '', 4999.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_02.jpg', '', '', '', '

', NULL, NULL, 0, 0, '华为', '手机通讯'); +INSERT INTO `pms_product` VALUES (43, 1, 39, 0, 14, '万和(Vanward)燃气热水器天然气家用四重防冻直流变频节能全新升级增压水伺服恒温高抗风', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_13L_01.png', '10044060351752', 0, 1, 0, 0, 0, 0, 0, 1799.00, NULL, 0, 0, 0, '【家电11.11享低价,抢到手价不高于1199】【发布种草秀享好礼!同价11.11买贵补差】爆款超一级能效零冷水】 ', '', 1799.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_16L_01.jpg', '', '', '', '

', NULL, NULL, 0, 0, '万和', '厨卫大电'); +INSERT INTO `pms_product` VALUES (44, 2, 55, 0, 15, '三星(SAMSUNG)500GB SSD固态硬盘 M.2接口(NVMe协议)', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', '100018768480', 0, 1, 0, 0, 0, 0, 0, 369.00, NULL, 0, 0, 0, '【满血无缓存!进店抽百元E卡,部分型号白条三期免息】兼具速度与可靠性!读速高达3500MB/s,全功率模式!点击 ', '', 369.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_01.jpg', '', '', '', '

', NULL, NULL, 0, 0, '三星', '硬盘'); +INSERT INTO `pms_product` VALUES (45, 21, 19, 0, 3, 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', '10052147850350', 0, 1, 0, 0, 0, 0, 0, 2299.00, 999.00, 0, 0, 0, '【11.11提前购机享价保,好货不用等,系统申请一键价保补差!】【Reno8Pro爆款优惠】 ', '', 2299.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_02.jpg', '', '', '', '

', '2022-11-09 16:15:50', '2022-11-25 00:00:00', 0, 4, 'OPPO', '手机通讯'); -- ---------------------------- -- Table structure for pms_product_attribute -- ---------------------------- DROP TABLE IF EXISTS `pms_product_attribute`; -CREATE TABLE `pms_product_attribute` ( +CREATE TABLE `pms_product_attribute` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_attribute_category_id` bigint(20) DEFAULT NULL, - `name` varchar(64) DEFAULT NULL, - `select_type` int(1) DEFAULT NULL COMMENT '属性选择类型:0->唯一;1->单选;2->多选', - `input_type` int(1) DEFAULT NULL COMMENT '属性录入方式:0->手工录入;1->从列表中选取', - `input_list` varchar(255) DEFAULT NULL COMMENT '可选值列表,以逗号隔开', - `sort` int(11) DEFAULT NULL COMMENT '排序字段:最高的可以单独上传图片', - `filter_type` int(1) DEFAULT NULL COMMENT '分类筛选样式:1->普通;1->颜色', - `search_type` int(1) DEFAULT NULL COMMENT '检索类型;0->不需要进行检索;1->关键字检索;2->范围检索', - `related_status` int(1) DEFAULT NULL COMMENT '相同属性产品是否关联;0->不关联;1->关联', - `hand_add_status` int(1) DEFAULT NULL COMMENT '是否支持手动新增;0->不支持;1->支持', - `type` int(1) DEFAULT NULL COMMENT '属性的类型;0->规格;1->参数', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8 COMMENT='商品属性参数表'; + `product_attribute_category_id` bigint(20) NULL DEFAULT NULL, + `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `select_type` int(1) NULL DEFAULT NULL COMMENT '属性选择类型:0->唯一;1->单选;2->多选', + `input_type` int(1) NULL DEFAULT NULL COMMENT '属性录入方式:0->手工录入;1->从列表中选取', + `input_list` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '可选值列表,以逗号隔开', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序字段:最高的可以单独上传图片', + `filter_type` int(1) NULL DEFAULT NULL COMMENT '分类筛选样式:1->普通;1->颜色', + `search_type` int(1) NULL DEFAULT NULL COMMENT '检索类型;0->不需要进行检索;1->关键字检索;2->范围检索', + `related_status` int(1) NULL DEFAULT NULL COMMENT '相同属性产品是否关联;0->不关联;1->关联', + `hand_add_status` int(1) NULL DEFAULT NULL COMMENT '是否支持手动新增;0->不支持;1->支持', + `type` int(1) NULL DEFAULT NULL COMMENT '属性的类型;0->规格;1->参数', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 74 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品属性参数表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of pms_product_attribute -- ---------------------------- -INSERT INTO `pms_product_attribute` VALUES ('1', '1', '尺寸', '2', '1', 'M,X,XL,2XL,3XL,4XL', '0', '0', '0', '0', '0', '0'); -INSERT INTO `pms_product_attribute` VALUES ('7', '1', '颜色', '2', '1', '黑色,红色,白色,粉色', '100', '0', '0', '0', '1', '0'); -INSERT INTO `pms_product_attribute` VALUES ('13', '0', '上市年份', '1', '1', '2013年,2014年,2015年,2016年,2017年', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('14', '0', '上市年份1', '1', '1', '2013年,2014年,2015年,2016年,2017年', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('15', '0', '上市年份2', '1', '1', '2013年,2014年,2015年,2016年,2017年', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('16', '0', '上市年份3', '1', '1', '2013年,2014年,2015年,2016年,2017年', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('17', '0', '上市年份4', '1', '1', '2013年,2014年,2015年,2016年,2017年', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('18', '0', '上市年份5', '1', '1', '2013年,2014年,2015年,2016年,2017年', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('19', '0', '适用对象', '1', '1', '青年女性,中年女性', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('20', '0', '适用对象1', '2', '1', '青年女性,中年女性', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('21', '0', '适用对象3', '2', '1', '青年女性,中年女性', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('24', '1', '商品编号', '1', '0', '', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('25', '1', '适用季节', '1', '1', '春季,夏季,秋季,冬季', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('32', '2', '适用人群', '0', '1', '老年,青年,中年', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('33', '2', '风格', '0', '1', '嘻哈风格,基础大众,商务正装', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('35', '2', '颜色', '0', '0', '', '100', '0', '0', '0', '1', '0'); -INSERT INTO `pms_product_attribute` VALUES ('37', '1', '适用人群', '1', '1', '儿童,青年,中年,老年', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('38', '1', '上市时间', '1', '1', '2017年秋,2017年冬,2018年春,2018年夏', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('39', '1', '袖长', '1', '1', '短袖,长袖,中袖', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('40', '2', '尺码', '0', '1', '29,30,31,32,33,34', '0', '0', '0', '0', '0', '0'); -INSERT INTO `pms_product_attribute` VALUES ('41', '2', '适用场景', '0', '1', '居家,运动,正装', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('42', '2', '上市时间', '0', '1', '2018年春,2018年夏', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('43', '3', '颜色', '0', '0', '', '100', '0', '0', '0', '1', '0'); -INSERT INTO `pms_product_attribute` VALUES ('44', '3', '容量', '0', '1', '16G,32G,64G,128G', '0', '0', '0', '0', '0', '0'); -INSERT INTO `pms_product_attribute` VALUES ('45', '3', '屏幕尺寸', '0', '0', '', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('46', '3', '网络', '0', '1', '3G,4G', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('47', '3', '系统', '0', '1', 'Android,IOS', '0', '0', '0', '0', '0', '1'); -INSERT INTO `pms_product_attribute` VALUES ('48', '3', '电池容量', '0', '0', '', '0', '0', '0', '0', '0', '1'); +INSERT INTO `pms_product_attribute` VALUES (1, 1, '尺寸', 2, 1, 'M,X,XL,2XL,3XL,4XL', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (7, 1, '颜色', 2, 1, '黑色,红色,白色,粉色', 100, 0, 0, 0, 1, 0); +INSERT INTO `pms_product_attribute` VALUES (13, 0, '上市年份', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (14, 0, '上市年份1', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (15, 0, '上市年份2', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (16, 0, '上市年份3', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (17, 0, '上市年份4', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (18, 0, '上市年份5', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (19, 0, '适用对象', 1, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (20, 0, '适用对象1', 2, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (21, 0, '适用对象3', 2, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (24, 1, '商品编号', 1, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (25, 1, '适用季节', 1, 1, '春季,夏季,秋季,冬季', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (32, 2, '适用人群', 0, 1, '老年,青年,中年', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (33, 2, '风格', 0, 1, '嘻哈风格,基础大众,商务正装', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (35, 2, '颜色', 0, 0, '', 100, 0, 0, 0, 1, 0); +INSERT INTO `pms_product_attribute` VALUES (37, 1, '适用人群', 1, 1, '儿童,青年,中年,老年', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (38, 1, '上市时间', 1, 1, '2017年秋,2017年冬,2018年春,2018年夏', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (39, 1, '袖长', 1, 1, '短袖,长袖,中袖', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (40, 2, '尺码', 0, 1, '29,30,31,32,33,34', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (41, 2, '适用场景', 0, 1, '居家,运动,正装', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (42, 2, '上市时间', 0, 1, '2018年春,2018年夏', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (43, 3, '颜色', 0, 0, '', 100, 0, 0, 0, 1, 0); +INSERT INTO `pms_product_attribute` VALUES (44, 3, '容量', 0, 1, '16G,32G,64G,128G,256G,512G', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (45, 3, '屏幕尺寸', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (46, 3, '网络', 0, 1, '3G,4G,5G,WLAN', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (47, 3, '系统', 0, 1, 'Android,IOS', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (48, 3, '电池容量', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (49, 11, '颜色', 0, 1, '红色,蓝色,绿色', 0, 1, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (50, 11, '尺寸', 0, 1, '38,39,40', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (51, 11, '风格', 0, 1, '夏季,秋季', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (52, 12, '尺寸', 0, 1, '50英寸,65英寸,70英寸', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (53, 12, '内存', 0, 1, '8G,16G,32G', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (54, 12, '商品编号', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (55, 12, '商品毛重', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (56, 12, '商品产地', 0, 1, '中国大陆,其他', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (57, 12, '电视类型', 0, 1, '大屏,教育电视,4K超清', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (58, 13, '颜色', 0, 0, '', 0, 0, 0, 0, 1, 0); +INSERT INTO `pms_product_attribute` VALUES (59, 13, '版本', 0, 1, 'R7 16G 512,R5 16G 512,I5 16G 512,I7 16G 512', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (60, 13, '屏幕尺寸', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (61, 13, '屏幕分辨率', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (62, 13, 'CPU型号', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (63, 14, '系列', 0, 0, '', 0, 0, 0, 0, 1, 0); +INSERT INTO `pms_product_attribute` VALUES (64, 14, '上市时间', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (65, 14, '毛重', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (66, 14, '额定功率', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (67, 15, '颜色', 0, 0, '', 0, 0, 0, 0, 1, 0); +INSERT INTO `pms_product_attribute` VALUES (68, 15, '版本', 0, 1, '512GB,1TB', 0, 0, 0, 0, 0, 0); +INSERT INTO `pms_product_attribute` VALUES (69, 15, '系列', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (70, 15, '型号', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (71, 15, '闪存类型', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (72, 15, '顺序读速', 0, 0, '', 0, 0, 0, 0, 0, 1); +INSERT INTO `pms_product_attribute` VALUES (73, 15, '顺序写入', 0, 0, '', 0, 0, 0, 0, 0, 1); -- ---------------------------- --- Table structure for pms_product_attribute_category +-- Table structure for pms_product_attribute_value -- ---------------------------- -DROP TABLE IF EXISTS `pms_product_attribute_category`; -CREATE TABLE `pms_product_attribute_category` ( +DROP TABLE IF EXISTS `pms_product_attribute_value`; +CREATE TABLE `pms_product_attribute_value` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(64) DEFAULT NULL, - `attribute_count` int(11) DEFAULT '0' COMMENT '属性数量', - `param_count` int(11) DEFAULT '0' COMMENT '参数数量', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='产品属性分类表'; + `product_id` bigint(20) NULL DEFAULT NULL, + `product_attribute_id` bigint(20) NULL DEFAULT NULL, + `value` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 477 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '存储产品参数信息的表' ROW_FORMAT = DYNAMIC; -- ---------------------------- --- Records of pms_product_attribute_category +-- Records of pms_product_attribute_value -- ---------------------------- -INSERT INTO `pms_product_attribute_category` VALUES ('1', '服装-T恤', '2', '5'); -INSERT INTO `pms_product_attribute_category` VALUES ('2', '服装-裤装', '2', '4'); -INSERT INTO `pms_product_attribute_category` VALUES ('3', '手机数码-手机通讯', '2', '4'); -INSERT INTO `pms_product_attribute_category` VALUES ('4', '配件', '0', '0'); -INSERT INTO `pms_product_attribute_category` VALUES ('5', '居家', '0', '0'); -INSERT INTO `pms_product_attribute_category` VALUES ('6', '洗护', '0', '0'); -INSERT INTO `pms_product_attribute_category` VALUES ('10', '测试分类', '0', '0'); +INSERT INTO `pms_product_attribute_value` VALUES (1, 9, 1, 'X'); +INSERT INTO `pms_product_attribute_value` VALUES (2, 10, 1, 'X'); +INSERT INTO `pms_product_attribute_value` VALUES (3, 11, 1, 'X'); +INSERT INTO `pms_product_attribute_value` VALUES (4, 12, 1, 'X'); +INSERT INTO `pms_product_attribute_value` VALUES (5, 13, 1, 'X'); +INSERT INTO `pms_product_attribute_value` VALUES (6, 14, 1, 'X'); +INSERT INTO `pms_product_attribute_value` VALUES (7, 18, 1, 'X'); +INSERT INTO `pms_product_attribute_value` VALUES (8, 7, 1, 'X'); +INSERT INTO `pms_product_attribute_value` VALUES (9, 7, 1, 'XL'); +INSERT INTO `pms_product_attribute_value` VALUES (10, 7, 1, 'XXL'); +INSERT INTO `pms_product_attribute_value` VALUES (11, 22, 7, 'x,xx'); +INSERT INTO `pms_product_attribute_value` VALUES (12, 22, 24, 'no110'); +INSERT INTO `pms_product_attribute_value` VALUES (13, 22, 25, '春季'); +INSERT INTO `pms_product_attribute_value` VALUES (14, 22, 37, '青年'); +INSERT INTO `pms_product_attribute_value` VALUES (15, 22, 38, '2018年春'); +INSERT INTO `pms_product_attribute_value` VALUES (16, 22, 39, '长袖'); +INSERT INTO `pms_product_attribute_value` VALUES (124, 23, 7, '米白色,浅黄色'); +INSERT INTO `pms_product_attribute_value` VALUES (125, 23, 24, 'no1098'); +INSERT INTO `pms_product_attribute_value` VALUES (126, 23, 25, '春季'); +INSERT INTO `pms_product_attribute_value` VALUES (127, 23, 37, '青年'); +INSERT INTO `pms_product_attribute_value` VALUES (128, 23, 38, '2018年春'); +INSERT INTO `pms_product_attribute_value` VALUES (129, 23, 39, '长袖'); +INSERT INTO `pms_product_attribute_value` VALUES (130, 1, 13, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (131, 1, 14, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (132, 1, 15, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (133, 1, 16, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (134, 1, 17, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (135, 1, 18, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (136, 1, 19, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (137, 1, 20, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (138, 1, 21, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (139, 2, 13, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (140, 2, 14, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (141, 2, 15, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (142, 2, 16, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (143, 2, 17, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (144, 2, 18, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (145, 2, 19, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (146, 2, 20, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (147, 2, 21, NULL); +INSERT INTO `pms_product_attribute_value` VALUES (243, 30, 7, '蓝色,白色'); +INSERT INTO `pms_product_attribute_value` VALUES (244, 30, 24, 'HNTBJ2E042A'); +INSERT INTO `pms_product_attribute_value` VALUES (245, 30, 25, '夏季'); +INSERT INTO `pms_product_attribute_value` VALUES (246, 30, 37, '青年'); +INSERT INTO `pms_product_attribute_value` VALUES (247, 30, 38, '2018年夏'); +INSERT INTO `pms_product_attribute_value` VALUES (248, 30, 39, '短袖'); +INSERT INTO `pms_product_attribute_value` VALUES (249, 31, 7, '浅灰色,深灰色'); +INSERT INTO `pms_product_attribute_value` VALUES (250, 31, 24, 'HNTBJ2E080A'); +INSERT INTO `pms_product_attribute_value` VALUES (251, 31, 25, '夏季'); +INSERT INTO `pms_product_attribute_value` VALUES (252, 31, 37, '青年'); +INSERT INTO `pms_product_attribute_value` VALUES (253, 31, 38, '2018年夏'); +INSERT INTO `pms_product_attribute_value` VALUES (254, 31, 39, '短袖'); +INSERT INTO `pms_product_attribute_value` VALUES (255, 32, 7, '黑色,白色'); +INSERT INTO `pms_product_attribute_value` VALUES (256, 32, 24, 'HNTBJ2E153A'); +INSERT INTO `pms_product_attribute_value` VALUES (257, 32, 25, '夏季'); +INSERT INTO `pms_product_attribute_value` VALUES (258, 32, 37, '青年'); +INSERT INTO `pms_product_attribute_value` VALUES (259, 32, 38, '2018年夏'); +INSERT INTO `pms_product_attribute_value` VALUES (260, 32, 39, '短袖'); +INSERT INTO `pms_product_attribute_value` VALUES (265, 33, 54, '4609652'); +INSERT INTO `pms_product_attribute_value` VALUES (266, 33, 55, '28.6kg'); +INSERT INTO `pms_product_attribute_value` VALUES (267, 33, 56, '中国大陆'); +INSERT INTO `pms_product_attribute_value` VALUES (268, 33, 57, '大屏'); +INSERT INTO `pms_product_attribute_value` VALUES (269, 34, 54, '4609660'); +INSERT INTO `pms_product_attribute_value` VALUES (270, 34, 55, '30.8kg'); +INSERT INTO `pms_product_attribute_value` VALUES (271, 34, 56, '中国大陆'); +INSERT INTO `pms_product_attribute_value` VALUES (272, 34, 57, '4K超清'); +INSERT INTO `pms_product_attribute_value` VALUES (273, 26, 43, '金色,银色'); +INSERT INTO `pms_product_attribute_value` VALUES (274, 26, 45, '5.0'); +INSERT INTO `pms_product_attribute_value` VALUES (275, 26, 46, '4G'); +INSERT INTO `pms_product_attribute_value` VALUES (276, 26, 47, 'Android'); +INSERT INTO `pms_product_attribute_value` VALUES (277, 26, 48, '3000'); +INSERT INTO `pms_product_attribute_value` VALUES (288, 27, 43, '黑色,蓝色'); +INSERT INTO `pms_product_attribute_value` VALUES (289, 27, 45, '5.8'); +INSERT INTO `pms_product_attribute_value` VALUES (290, 27, 46, '4G'); +INSERT INTO `pms_product_attribute_value` VALUES (291, 27, 47, 'Android'); +INSERT INTO `pms_product_attribute_value` VALUES (292, 27, 48, '3000ml'); +INSERT INTO `pms_product_attribute_value` VALUES (303, 28, 43, '金色,银色'); +INSERT INTO `pms_product_attribute_value` VALUES (304, 28, 45, '5.0'); +INSERT INTO `pms_product_attribute_value` VALUES (305, 28, 46, '4G'); +INSERT INTO `pms_product_attribute_value` VALUES (306, 28, 47, 'Android'); +INSERT INTO `pms_product_attribute_value` VALUES (307, 28, 48, '2800ml'); +INSERT INTO `pms_product_attribute_value` VALUES (308, 29, 43, '金色,银色'); +INSERT INTO `pms_product_attribute_value` VALUES (309, 29, 45, '4.7'); +INSERT INTO `pms_product_attribute_value` VALUES (310, 29, 46, '4G'); +INSERT INTO `pms_product_attribute_value` VALUES (311, 29, 47, 'IOS'); +INSERT INTO `pms_product_attribute_value` VALUES (312, 29, 48, '1960ml'); +INSERT INTO `pms_product_attribute_value` VALUES (338, 37, 43, '午夜色,星光色,紫色,蓝色'); +INSERT INTO `pms_product_attribute_value` VALUES (339, 37, 45, '6.1英寸'); +INSERT INTO `pms_product_attribute_value` VALUES (340, 37, 46, '5G'); +INSERT INTO `pms_product_attribute_value` VALUES (341, 37, 47, 'IOS'); +INSERT INTO `pms_product_attribute_value` VALUES (342, 37, 48, '3000毫安'); +INSERT INTO `pms_product_attribute_value` VALUES (438, 40, 43, '黑色,蓝色'); +INSERT INTO `pms_product_attribute_value` VALUES (439, 40, 45, '6.73英寸'); +INSERT INTO `pms_product_attribute_value` VALUES (440, 40, 46, '5G'); +INSERT INTO `pms_product_attribute_value` VALUES (441, 40, 47, 'Android'); +INSERT INTO `pms_product_attribute_value` VALUES (442, 40, 48, '5160mAh'); +INSERT INTO `pms_product_attribute_value` VALUES (443, 38, 43, '银色,蓝色'); +INSERT INTO `pms_product_attribute_value` VALUES (444, 38, 45, '10.9英寸'); +INSERT INTO `pms_product_attribute_value` VALUES (445, 38, 46, 'WLAN'); +INSERT INTO `pms_product_attribute_value` VALUES (446, 38, 47, 'IOS'); +INSERT INTO `pms_product_attribute_value` VALUES (447, 38, 48, '6000毫安'); +INSERT INTO `pms_product_attribute_value` VALUES (448, 39, 58, '新小米Pro 14英寸 2.8K屏,新Redmi Pro 15英寸 3.2K屏'); +INSERT INTO `pms_product_attribute_value` VALUES (449, 39, 60, '15.6英寸'); +INSERT INTO `pms_product_attribute_value` VALUES (450, 39, 61, '3200*2000'); +INSERT INTO `pms_product_attribute_value` VALUES (451, 39, 62, 'R5 6600H'); +INSERT INTO `pms_product_attribute_value` VALUES (452, 41, 43, '墨羽,银迹'); +INSERT INTO `pms_product_attribute_value` VALUES (453, 41, 45, '6.67英寸'); +INSERT INTO `pms_product_attribute_value` VALUES (454, 41, 46, '5G'); +INSERT INTO `pms_product_attribute_value` VALUES (455, 41, 47, 'Android'); +INSERT INTO `pms_product_attribute_value` VALUES (456, 41, 48, '5500mAh'); +INSERT INTO `pms_product_attribute_value` VALUES (457, 42, 43, '曜金黑,冰霜银'); +INSERT INTO `pms_product_attribute_value` VALUES (458, 42, 45, '6.7英寸'); +INSERT INTO `pms_product_attribute_value` VALUES (459, 42, 46, '5G'); +INSERT INTO `pms_product_attribute_value` VALUES (460, 42, 47, 'Android'); +INSERT INTO `pms_product_attribute_value` VALUES (461, 42, 48, '4460mAh'); +INSERT INTO `pms_product_attribute_value` VALUES (462, 43, 63, 'JSQ25-565W13【13升】【恒温旗舰款】,JSQ30-565W16【16升】【恒温旗舰款】'); +INSERT INTO `pms_product_attribute_value` VALUES (463, 43, 64, '2021-05'); +INSERT INTO `pms_product_attribute_value` VALUES (464, 43, 65, '15.5kg'); +INSERT INTO `pms_product_attribute_value` VALUES (465, 43, 66, '30w'); +INSERT INTO `pms_product_attribute_value` VALUES (466, 44, 67, '新品980|NVMe PCIe3.0*4,980 PRO|NVMe PCIe 4.0'); +INSERT INTO `pms_product_attribute_value` VALUES (467, 44, 69, '980'); +INSERT INTO `pms_product_attribute_value` VALUES (468, 44, 70, 'MZ-V8V500BW'); +INSERT INTO `pms_product_attribute_value` VALUES (469, 44, 71, 'TLC'); +INSERT INTO `pms_product_attribute_value` VALUES (470, 44, 72, '3100MB/s'); +INSERT INTO `pms_product_attribute_value` VALUES (471, 44, 73, '2600MB/s'); +INSERT INTO `pms_product_attribute_value` VALUES (472, 45, 43, '鸢尾紫,晴空蓝'); +INSERT INTO `pms_product_attribute_value` VALUES (473, 45, 45, '6.43英寸'); +INSERT INTO `pms_product_attribute_value` VALUES (474, 45, 46, '5G'); +INSERT INTO `pms_product_attribute_value` VALUES (475, 45, 47, 'Android'); +INSERT INTO `pms_product_attribute_value` VALUES (476, 45, 48, '4500mAh'); -- ---------------------------- --- Table structure for pms_product_attribute_value +-- Table structure for ums_admin -- ---------------------------- -DROP TABLE IF EXISTS `pms_product_attribute_value`; -CREATE TABLE `pms_product_attribute_value` ( +DROP TABLE IF EXISTS `ums_admin`; +CREATE TABLE `ums_admin` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `product_id` bigint(20) DEFAULT NULL, - `product_attribute_id` bigint(20) DEFAULT NULL, - `value` varchar(64) DEFAULT NULL COMMENT '手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=228 DEFAULT CHARSET=utf8 COMMENT='存储产品参数信息的表'; + `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像', + `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `nick_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称', + `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `login_time` datetime NULL DEFAULT NULL COMMENT '最后登录时间', + `status` int(1) NULL DEFAULT 1 COMMENT '帐号启用状态:0->禁用;1->启用', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户表' ROW_FORMAT = Dynamic; -- ---------------------------- --- Records of pms_product_attribute_value +-- Records of ums_admin -- ---------------------------- -INSERT INTO `pms_product_attribute_value` VALUES ('1', '9', '1', 'X'); -INSERT INTO `pms_product_attribute_value` VALUES ('2', '10', '1', 'X'); -INSERT INTO `pms_product_attribute_value` VALUES ('3', '11', '1', 'X'); -INSERT INTO `pms_product_attribute_value` VALUES ('4', '12', '1', 'X'); -INSERT INTO `pms_product_attribute_value` VALUES ('5', '13', '1', 'X'); -INSERT INTO `pms_product_attribute_value` VALUES ('6', '14', '1', 'X'); -INSERT INTO `pms_product_attribute_value` VALUES ('7', '18', '1', 'X'); -INSERT INTO `pms_product_attribute_value` VALUES ('8', '7', '1', 'X'); -INSERT INTO `pms_product_attribute_value` VALUES ('9', '7', '1', 'XL'); -INSERT INTO `pms_product_attribute_value` VALUES ('10', '7', '1', 'XXL'); -INSERT INTO `pms_product_attribute_value` VALUES ('11', '22', '7', 'x,xx'); -INSERT INTO `pms_product_attribute_value` VALUES ('12', '22', '24', 'no110'); -INSERT INTO `pms_product_attribute_value` VALUES ('13', '22', '25', '春季'); -INSERT INTO `pms_product_attribute_value` VALUES ('14', '22', '37', '青年'); -INSERT INTO `pms_product_attribute_value` VALUES ('15', '22', '38', '2018年春'); -INSERT INTO `pms_product_attribute_value` VALUES ('16', '22', '39', '长袖'); -INSERT INTO `pms_product_attribute_value` VALUES ('124', '23', '7', '米白色,浅黄色'); -INSERT INTO `pms_product_attribute_value` VALUES ('125', '23', '24', 'no1098'); -INSERT INTO `pms_product_attribute_value` VALUES ('126', '23', '25', '春季'); -INSERT INTO `pms_product_attribute_value` VALUES ('127', '23', '37', '青年'); -INSERT INTO `pms_product_attribute_value` VALUES ('128', '23', '38', '2018年春'); -INSERT INTO `pms_product_attribute_value` VALUES ('129', '23', '39', '长袖'); -INSERT INTO `pms_product_attribute_value` VALUES ('130', '1', '13', null); -INSERT INTO `pms_product_attribute_value` VALUES ('131', '1', '14', null); -INSERT INTO `pms_product_attribute_value` VALUES ('132', '1', '15', null); -INSERT INTO `pms_product_attribute_value` VALUES ('133', '1', '16', null); -INSERT INTO `pms_product_attribute_value` VALUES ('134', '1', '17', null); -INSERT INTO `pms_product_attribute_value` VALUES ('135', '1', '18', null); -INSERT INTO `pms_product_attribute_value` VALUES ('136', '1', '19', null); -INSERT INTO `pms_product_attribute_value` VALUES ('137', '1', '20', null); -INSERT INTO `pms_product_attribute_value` VALUES ('138', '1', '21', null); -INSERT INTO `pms_product_attribute_value` VALUES ('139', '2', '13', null); -INSERT INTO `pms_product_attribute_value` VALUES ('140', '2', '14', null); -INSERT INTO `pms_product_attribute_value` VALUES ('141', '2', '15', null); -INSERT INTO `pms_product_attribute_value` VALUES ('142', '2', '16', null); -INSERT INTO `pms_product_attribute_value` VALUES ('143', '2', '17', null); -INSERT INTO `pms_product_attribute_value` VALUES ('144', '2', '18', null); -INSERT INTO `pms_product_attribute_value` VALUES ('145', '2', '19', null); -INSERT INTO `pms_product_attribute_value` VALUES ('146', '2', '20', null); -INSERT INTO `pms_product_attribute_value` VALUES ('147', '2', '21', null); -INSERT INTO `pms_product_attribute_value` VALUES ('183', '31', '24', null); -INSERT INTO `pms_product_attribute_value` VALUES ('184', '31', '25', '夏季'); -INSERT INTO `pms_product_attribute_value` VALUES ('185', '31', '37', '青年'); -INSERT INTO `pms_product_attribute_value` VALUES ('186', '31', '38', '2018年夏'); -INSERT INTO `pms_product_attribute_value` VALUES ('187', '31', '39', '短袖'); -INSERT INTO `pms_product_attribute_value` VALUES ('198', '30', '24', null); -INSERT INTO `pms_product_attribute_value` VALUES ('199', '30', '25', '夏季'); -INSERT INTO `pms_product_attribute_value` VALUES ('200', '30', '37', '青年'); -INSERT INTO `pms_product_attribute_value` VALUES ('201', '30', '38', '2018年夏'); -INSERT INTO `pms_product_attribute_value` VALUES ('202', '30', '39', '短袖'); -INSERT INTO `pms_product_attribute_value` VALUES ('203', '26', '43', '金色,银色'); -INSERT INTO `pms_product_attribute_value` VALUES ('204', '26', '45', '5.0'); -INSERT INTO `pms_product_attribute_value` VALUES ('205', '26', '46', '4G'); -INSERT INTO `pms_product_attribute_value` VALUES ('206', '26', '47', 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES ('207', '26', '48', '3000'); -INSERT INTO `pms_product_attribute_value` VALUES ('213', '27', '43', '黑色,蓝色'); -INSERT INTO `pms_product_attribute_value` VALUES ('214', '27', '45', '5.8'); -INSERT INTO `pms_product_attribute_value` VALUES ('215', '27', '46', '4G'); -INSERT INTO `pms_product_attribute_value` VALUES ('216', '27', '47', 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES ('217', '27', '48', '3000ml'); -INSERT INTO `pms_product_attribute_value` VALUES ('218', '28', '43', '金色,银色'); -INSERT INTO `pms_product_attribute_value` VALUES ('219', '28', '45', '5.0'); -INSERT INTO `pms_product_attribute_value` VALUES ('220', '28', '46', '4G'); -INSERT INTO `pms_product_attribute_value` VALUES ('221', '28', '47', 'Android'); -INSERT INTO `pms_product_attribute_value` VALUES ('222', '28', '48', '2800ml'); -INSERT INTO `pms_product_attribute_value` VALUES ('223', '29', '43', '金色,银色'); -INSERT INTO `pms_product_attribute_value` VALUES ('224', '29', '45', '4.7'); -INSERT INTO `pms_product_attribute_value` VALUES ('225', '29', '46', '4G'); -INSERT INTO `pms_product_attribute_value` VALUES ('226', '29', '47', 'IOS'); -INSERT INTO `pms_product_attribute_value` VALUES ('227', '29', '48', '1960ml'); +INSERT INTO `ums_admin` VALUES (1, 'test', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg.jpg', 'test@qq.com', '测试账号', NULL, '2018-09-29 13:55:30', '2018-09-29 13:55:39', 1); +INSERT INTO `ums_admin` VALUES (3, 'admin', '$2a$10$.E1FokumK5GIXWgKlg.Hc.i/0/2.qdAwYFL1zc5QHdyzpXOr38RZO', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg.jpg', 'admin@163.com', '系统管理员', '系统管理员', '2018-10-08 13:32:47', '2019-04-20 12:45:16', 1); +INSERT INTO `ums_admin` VALUES (4, 'macro', '$2a$10$Bx4jZPR7GhEpIQfefDQtVeS58GfT5n6mxs/b4nLLK65eMFa16topa', 'string', 'macro@qq.com', 'macro', 'macro专用', '2019-10-06 15:53:51', '2020-02-03 14:55:55', 1); +INSERT INTO `ums_admin` VALUES (6, 'productAdmin', '$2a$10$6/.J.p.6Bhn7ic4GfoB5D.pGd7xSiD1a9M6ht6yO0fxzlKJPjRAGm', NULL, 'product@qq.com', '商品管理员', '只有商品权限', '2020-02-07 16:15:08', NULL, 1); +INSERT INTO `ums_admin` VALUES (7, 'orderAdmin', '$2a$10$UqEhA9UZXjHHA3B.L9wNG.6aerrBjC6WHTtbv1FdvYPUI.7lkL6E.', NULL, 'order@qq.com', '订单管理员', '只有订单管理权限', '2020-02-07 16:15:50', NULL, 1); +INSERT INTO `ums_admin` VALUES (10, 'ceshi', '$2a$10$RaaNo9CC0RSms8mc/gJpCuOWndDT4pHH0u5XgZdAAYFs1Uq4sOPRi', NULL, 'ceshi@qq.com', 'ceshi', NULL, '2020-03-13 16:23:30', NULL, 1); -- ---------------------------- --- Table structure for pms_product_category +-- Table structure for ums_admin_login_log -- ---------------------------- -DROP TABLE IF EXISTS `pms_product_category`; -CREATE TABLE `pms_product_category` ( +DROP TABLE IF EXISTS `ums_admin_login_log`; +CREATE TABLE `ums_admin_login_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `parent_id` bigint(20) DEFAULT NULL COMMENT '上机分类的编号:0表示一级分类', - `name` varchar(64) DEFAULT NULL, - `level` int(1) DEFAULT NULL COMMENT '分类级别:0->1级;1->2级', - `product_count` int(11) DEFAULT NULL, - `product_unit` varchar(64) DEFAULT NULL, - `nav_status` int(1) DEFAULT NULL COMMENT '是否显示在导航栏:0->不显示;1->显示', - `show_status` int(1) DEFAULT NULL COMMENT '显示状态:0->不显示;1->显示', - `sort` int(11) DEFAULT NULL, - `icon` varchar(255) DEFAULT NULL COMMENT '图标', - `keywords` varchar(255) DEFAULT NULL, - `description` text COMMENT '描述', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8 COMMENT='产品分类'; + `admin_id` bigint(20) NULL DEFAULT NULL, + `create_time` datetime NULL DEFAULT NULL, + `ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `address` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `user_agent` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '浏览器登录类型', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 310 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户登录日志表' ROW_FORMAT = Dynamic; -- ---------------------------- --- Records of pms_product_category --- ---------------------------- -INSERT INTO `pms_product_category` VALUES ('1', '0', '服装', '0', '100', '件', '1', '1', '1', null, '服装', '服装分类'); -INSERT INTO `pms_product_category` VALUES ('2', '0', '手机数码', '0', '100', '件', '1', '1', '1', null, '手机数码', '手机数码'); -INSERT INTO `pms_product_category` VALUES ('3', '0', '家用电器', '0', '100', '件', '1', '1', '1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/subject_cate_jiadian.png', '家用电器', '家用电器'); -INSERT INTO `pms_product_category` VALUES ('4', '0', '家具家装', '0', '100', '件', '1', '1', '1', null, '家具家装', '家具家装'); -INSERT INTO `pms_product_category` VALUES ('5', '0', '汽车用品', '0', '100', '件', '1', '1', '1', null, '汽车用品', '汽车用品'); -INSERT INTO `pms_product_category` VALUES ('7', '1', '外套', '1', '100', '件', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_waitao.png', '外套', '外套'); -INSERT INTO `pms_product_category` VALUES ('8', '1', 'T恤', '1', '100', '件', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_tshirt.png', 'T恤', 'T恤'); -INSERT INTO `pms_product_category` VALUES ('9', '1', '休闲裤', '1', '100', '件', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_xiuxianku.png', '休闲裤', '休闲裤'); -INSERT INTO `pms_product_category` VALUES ('10', '1', '牛仔裤', '1', '100', '件', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_niuzaiku.png', '牛仔裤', '牛仔裤'); -INSERT INTO `pms_product_category` VALUES ('11', '1', '衬衫', '1', '100', '件', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_chenshan.png', '衬衫', '衬衫分类'); -INSERT INTO `pms_product_category` VALUES ('13', '12', '家电子分类1', '1', '1', 'string', '0', '1', '0', 'string', 'string', 'string'); -INSERT INTO `pms_product_category` VALUES ('14', '12', '家电子分类2', '1', '1', 'string', '0', '1', '0', 'string', 'string', 'string'); -INSERT INTO `pms_product_category` VALUES ('19', '2', '手机通讯', '1', '0', '件', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_shouji.png', '手机通讯', '手机通讯'); -INSERT INTO `pms_product_category` VALUES ('29', '1', '男鞋', '1', '0', '', '0', '0', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_xie.png', '', ''); -INSERT INTO `pms_product_category` VALUES ('30', '2', '手机配件', '1', '0', '', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_peijian.png', '手机配件', '手机配件'); -INSERT INTO `pms_product_category` VALUES ('31', '2', '摄影摄像', '1', '0', '', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_sheying.png', '', ''); -INSERT INTO `pms_product_category` VALUES ('32', '2', '影音娱乐', '1', '0', '', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_yule.png', '', ''); -INSERT INTO `pms_product_category` VALUES ('33', '2', '数码配件', '1', '0', '', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_yule.png', '', ''); -INSERT INTO `pms_product_category` VALUES ('34', '2', '智能设备', '1', '0', '', '1', '1', '0', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/product_cate_zhineng.png', '', ''); -INSERT INTO `pms_product_category` VALUES ('35', '3', '电视', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('36', '3', '空调', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('37', '3', '洗衣机', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('38', '3', '冰箱', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('39', '3', '厨卫大电', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('40', '3', '厨房小电', '1', '0', '', '0', '0', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('41', '3', '生活电器', '1', '0', '', '0', '0', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('42', '3', '个护健康', '1', '0', '', '0', '0', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('43', '4', '厨房卫浴', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('44', '4', '灯饰照明', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('45', '4', '五金工具', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('46', '4', '卧室家具', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('47', '4', '客厅家具', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('48', '5', '全新整车', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('49', '5', '车载电器', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('50', '5', '维修保养', '1', '0', '', '1', '1', '0', '', '', ''); -INSERT INTO `pms_product_category` VALUES ('51', '5', '汽车装饰', '1', '0', '', '1', '1', '0', '', '', ''); +-- Records of ums_admin_login_log +-- ---------------------------- +INSERT INTO `ums_admin_login_log` VALUES (285, 3, '2020-08-24 14:05:21', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (286, 10, '2020-08-24 14:05:39', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (287, 3, '2020-09-08 21:28:40', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (288, 3, '2021-03-28 10:38:25', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (289, 3, '2021-03-28 10:40:47', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (290, 3, '2022-04-29 09:40:54', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (291, 3, '2022-04-29 10:39:16', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (292, 3, '2022-05-06 10:45:59', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (293, 6, '2022-05-06 10:59:57', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (294, 3, '2022-05-07 16:56:22', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (295, 3, '2022-05-10 09:49:07', '127.0.0.1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (296, 3, '2022-05-10 09:52:17', '127.0.0.1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (297, 3, '2022-05-10 09:52:37', '127.0.0.1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (298, 3, '2022-05-10 10:05:09', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (299, 3, '2022-05-19 14:39:59', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (300, 3, '2022-05-19 14:46:25', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (301, 3, '2022-05-19 14:46:27', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (302, 3, '2022-05-20 16:22:54', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (303, 3, '2022-05-20 16:28:22', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (304, 3, '2022-05-25 10:39:07', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (305, 1, '2022-07-27 15:55:59', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (306, 1, '2022-07-27 15:57:02', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (307, 1, '2022-07-27 15:59:32', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (308, 1, '2022-07-28 10:44:23', '0:0:0:0:0:0:0:1', NULL, NULL); +INSERT INTO `ums_admin_login_log` VALUES (309, 3, '2022-08-11 10:09:50', '0:0:0:0:0:0:0:1', NULL, NULL); -- ---------------------------- --- Table structure for ums_admin +-- Table structure for ums_admin_role_relation -- ---------------------------- -DROP TABLE IF EXISTS `ums_admin`; -CREATE TABLE `ums_admin` ( +DROP TABLE IF EXISTS `ums_admin_role_relation`; +CREATE TABLE `ums_admin_role_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `username` varchar(64) DEFAULT NULL, - `password` varchar(64) DEFAULT NULL, - `icon` varchar(500) DEFAULT NULL COMMENT '头像', - `email` varchar(100) DEFAULT NULL COMMENT '邮箱', - `nick_name` varchar(200) DEFAULT NULL COMMENT '昵称', - `note` varchar(500) DEFAULT NULL COMMENT '备注信息', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `login_time` datetime DEFAULT NULL COMMENT '最后登录时间', - `status` int(1) DEFAULT '1' COMMENT '帐号启用状态:0->禁用;1->启用', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='后台用户表'; + `admin_id` bigint(20) NULL DEFAULT NULL, + `role_id` bigint(20) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户和角色关系表' ROW_FORMAT = Dynamic; -- ---------------------------- --- Records of ums_admin +-- Records of ums_admin_role_relation -- ---------------------------- -INSERT INTO `ums_admin` VALUES ('1', 'test', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg.jpg', null, '测试账号', null, '2018-09-29 13:55:30', '2018-09-29 13:55:39', '1'); -INSERT INTO `ums_admin` VALUES ('3', 'admin', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/170157_yIl3_1767531.jpg', 'admin@163.com', '系统管理员', '系统管理员', '2018-10-08 13:32:47', '2019-03-20 15:38:50', '1'); +INSERT INTO `ums_admin_role_relation` VALUES (26, 3, 5); +INSERT INTO `ums_admin_role_relation` VALUES (27, 6, 1); +INSERT INTO `ums_admin_role_relation` VALUES (28, 7, 2); +INSERT INTO `ums_admin_role_relation` VALUES (29, 1, 5); +INSERT INTO `ums_admin_role_relation` VALUES (30, 4, 5); +INSERT INTO `ums_admin_role_relation` VALUES (31, 8, 5); +INSERT INTO `ums_admin_role_relation` VALUES (34, 12, 6); +INSERT INTO `ums_admin_role_relation` VALUES (38, 13, 5); +INSERT INTO `ums_admin_role_relation` VALUES (39, 10, 8); -- ---------------------------- --- Table structure for ums_admin_permission_relation +-- Table structure for ums_menu -- ---------------------------- -DROP TABLE IF EXISTS `ums_admin_permission_relation`; -CREATE TABLE `ums_admin_permission_relation` ( +DROP TABLE IF EXISTS `ums_menu`; +CREATE TABLE `ums_menu` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `admin_id` bigint(20) DEFAULT NULL, - `permission_id` bigint(20) DEFAULT NULL, - `type` int(1) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='后台用户和权限关系表(除角色中定义的权限以外的加减权限)'; + `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父级ID', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单名称', + `level` int(4) NULL DEFAULT NULL COMMENT '菜单级数', + `sort` int(4) NULL DEFAULT NULL COMMENT '菜单排序', + `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端名称', + `icon` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端图标', + `hidden` int(1) NULL DEFAULT NULL COMMENT '前端隐藏', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 26 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台菜单表' ROW_FORMAT = Dynamic; -- ---------------------------- --- Records of ums_admin_permission_relation --- ---------------------------- +-- Records of ums_menu +-- ---------------------------- +INSERT INTO `ums_menu` VALUES (1, 0, '2020-02-02 14:50:36', '商品', 0, 0, 'pms', 'product', 1); +INSERT INTO `ums_menu` VALUES (2, 1, '2020-02-02 14:51:50', '商品列表', 1, 0, 'product', 'product-list', 0); +INSERT INTO `ums_menu` VALUES (3, 1, '2020-02-02 14:52:44', '添加商品', 1, 0, 'addProduct', 'product-add', 0); +INSERT INTO `ums_menu` VALUES (4, 1, '2020-02-02 14:53:51', '商品分类', 1, 0, 'productCate', 'product-cate', 0); +INSERT INTO `ums_menu` VALUES (5, 1, '2020-02-02 14:54:51', '商品类型', 1, 0, 'productAttr', 'product-attr', 0); +INSERT INTO `ums_menu` VALUES (6, 1, '2020-02-02 14:56:29', '品牌管理', 1, 0, 'brand', 'product-brand', 0); +INSERT INTO `ums_menu` VALUES (7, 0, '2020-02-02 16:54:07', '订单', 0, 0, 'oms', 'order', 1); +INSERT INTO `ums_menu` VALUES (8, 7, '2020-02-02 16:55:18', '订单列表', 1, 0, 'order', 'product-list', 0); +INSERT INTO `ums_menu` VALUES (9, 7, '2020-02-02 16:56:46', '订单设置', 1, 0, 'orderSetting', 'order-setting', 0); +INSERT INTO `ums_menu` VALUES (10, 7, '2020-02-02 16:57:39', '退货申请处理', 1, 0, 'returnApply', 'order-return', 0); +INSERT INTO `ums_menu` VALUES (11, 7, '2020-02-02 16:59:40', '退货原因设置', 1, 0, 'returnReason', 'order-return-reason', 0); +INSERT INTO `ums_menu` VALUES (12, 0, '2020-02-04 16:18:00', '营销', 0, 0, 'sms', 'sms', 1); +INSERT INTO `ums_menu` VALUES (13, 12, '2020-02-04 16:19:22', '秒杀活动列表', 1, 0, 'flash', 'sms-flash', 0); +INSERT INTO `ums_menu` VALUES (14, 12, '2020-02-04 16:20:16', '优惠券列表', 1, 0, 'coupon', 'sms-coupon', 0); +INSERT INTO `ums_menu` VALUES (16, 12, '2020-02-07 16:22:38', '品牌推荐', 1, 0, 'homeBrand', 'product-brand', 0); +INSERT INTO `ums_menu` VALUES (17, 12, '2020-02-07 16:23:14', '新品推荐', 1, 0, 'homeNew', 'sms-new', 0); +INSERT INTO `ums_menu` VALUES (18, 12, '2020-02-07 16:26:38', '人气推荐', 1, 0, 'homeHot', 'sms-hot', 0); +INSERT INTO `ums_menu` VALUES (19, 12, '2020-02-07 16:28:16', '专题推荐', 1, 0, 'homeSubject', 'sms-subject', 0); +INSERT INTO `ums_menu` VALUES (20, 12, '2020-02-07 16:28:42', '广告列表', 1, 0, 'homeAdvertise', 'sms-ad', 0); +INSERT INTO `ums_menu` VALUES (21, 0, '2020-02-07 16:29:13', '权限', 0, 0, 'ums', 'ums', 0); +INSERT INTO `ums_menu` VALUES (22, 21, '2020-02-07 16:29:51', '用户列表', 1, 0, 'admin', 'ums-admin', 0); +INSERT INTO `ums_menu` VALUES (23, 21, '2020-02-07 16:30:13', '角色列表', 1, 0, 'role', 'ums-role', 0); +INSERT INTO `ums_menu` VALUES (24, 21, '2020-02-07 16:30:53', '菜单列表', 1, 0, 'menu', 'ums-menu', 0); +INSERT INTO `ums_menu` VALUES (25, 21, '2020-02-07 16:31:13', '资源列表', 1, 0, 'resource', 'ums-resource', 0); -- ---------------------------- --- Table structure for ums_admin_role_relation +-- Table structure for ums_resource -- ---------------------------- -DROP TABLE IF EXISTS `ums_admin_role_relation`; -CREATE TABLE `ums_admin_role_relation` ( +DROP TABLE IF EXISTS `ums_resource`; +CREATE TABLE `ums_resource` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `admin_id` bigint(20) DEFAULT NULL, - `role_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='后台用户和角色关系表'; + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资源名称', + `url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资源URL', + `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述', + `category_id` bigint(20) NULL DEFAULT NULL COMMENT '资源分类ID', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台资源表' ROW_FORMAT = Dynamic; -- ---------------------------- --- Records of ums_admin_role_relation --- ---------------------------- -INSERT INTO `ums_admin_role_relation` VALUES ('13', '3', '1'); -INSERT INTO `ums_admin_role_relation` VALUES ('15', '3', '2'); -INSERT INTO `ums_admin_role_relation` VALUES ('16', '3', '4'); +-- Records of ums_resource +-- ---------------------------- +INSERT INTO `ums_resource` VALUES (1, '2020-02-04 17:04:55', '商品品牌管理', '/brand/**', NULL, 1); +INSERT INTO `ums_resource` VALUES (2, '2020-02-04 17:05:35', '商品属性分类管理', '/productAttribute/**', NULL, 1); +INSERT INTO `ums_resource` VALUES (3, '2020-02-04 17:06:13', '商品属性管理', '/productAttribute/**', NULL, 1); +INSERT INTO `ums_resource` VALUES (4, '2020-02-04 17:07:15', '商品分类管理', '/productCategory/**', NULL, 1); +INSERT INTO `ums_resource` VALUES (5, '2020-02-04 17:09:16', '商品管理', '/product/**', NULL, 1); +INSERT INTO `ums_resource` VALUES (6, '2020-02-04 17:09:53', '商品库存管理', '/sku/**', NULL, 1); +INSERT INTO `ums_resource` VALUES (8, '2020-02-05 14:43:37', '订单管理', '/order/**', '', 2); +INSERT INTO `ums_resource` VALUES (9, '2020-02-05 14:44:22', ' 订单退货申请管理', '/returnApply/**', '', 2); +INSERT INTO `ums_resource` VALUES (10, '2020-02-05 14:45:08', '退货原因管理', '/returnReason/**', '', 2); +INSERT INTO `ums_resource` VALUES (11, '2020-02-05 14:45:43', '订单设置管理', '/orderSetting/**', '', 2); +INSERT INTO `ums_resource` VALUES (12, '2020-02-05 14:46:23', '收货地址管理', '/companyAddress/**', '', 2); +INSERT INTO `ums_resource` VALUES (13, '2020-02-07 16:37:22', '优惠券管理', '/coupon/**', '', 3); +INSERT INTO `ums_resource` VALUES (14, '2020-02-07 16:37:59', '优惠券领取记录管理', '/couponHistory/**', '', 3); +INSERT INTO `ums_resource` VALUES (15, '2020-02-07 16:38:28', '限时购活动管理', '/flash/**', '', 3); +INSERT INTO `ums_resource` VALUES (16, '2020-02-07 16:38:59', '限时购商品关系管理', '/flashProductRelation/**', '', 3); +INSERT INTO `ums_resource` VALUES (17, '2020-02-07 16:39:22', '限时购场次管理', '/flashSession/**', '', 3); +INSERT INTO `ums_resource` VALUES (18, '2020-02-07 16:40:07', '首页轮播广告管理', '/home/advertise/**', '', 3); +INSERT INTO `ums_resource` VALUES (19, '2020-02-07 16:40:34', '首页品牌管理', '/home/brand/**', '', 3); +INSERT INTO `ums_resource` VALUES (20, '2020-02-07 16:41:06', '首页新品管理', '/home/newProduct/**', '', 3); +INSERT INTO `ums_resource` VALUES (21, '2020-02-07 16:42:16', '首页人气推荐管理', '/home/recommendProduct/**', '', 3); +INSERT INTO `ums_resource` VALUES (22, '2020-02-07 16:42:48', '首页专题推荐管理', '/home/recommendSubject/**', '', 3); +INSERT INTO `ums_resource` VALUES (23, '2020-02-07 16:44:56', ' 商品优选管理', '/prefrenceArea/**', '', 5); +INSERT INTO `ums_resource` VALUES (24, '2020-02-07 16:45:39', '商品专题管理', '/subject/**', '', 5); +INSERT INTO `ums_resource` VALUES (25, '2020-02-07 16:47:34', '后台用户管理', '/admin/**', '', 4); +INSERT INTO `ums_resource` VALUES (26, '2020-02-07 16:48:24', '后台用户角色管理', '/role/**', '', 4); +INSERT INTO `ums_resource` VALUES (27, '2020-02-07 16:48:48', '后台菜单管理', '/menu/**', '', 4); +INSERT INTO `ums_resource` VALUES (28, '2020-02-07 16:49:18', '后台资源分类管理', '/resourceCategory/**', '', 4); +INSERT INTO `ums_resource` VALUES (29, '2020-02-07 16:49:45', '后台资源管理', '/resource/**', '', 4); -- ---------------------------- --- Table structure for ums_permission +-- Table structure for ums_resource_category -- ---------------------------- -DROP TABLE IF EXISTS `ums_permission`; -CREATE TABLE `ums_permission` ( +DROP TABLE IF EXISTS `ums_resource_category`; +CREATE TABLE `ums_resource_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `pid` bigint(20) DEFAULT NULL COMMENT '父级权限id', - `name` varchar(100) DEFAULT NULL COMMENT '名称', - `value` varchar(200) DEFAULT NULL COMMENT '权限值', - `icon` varchar(500) DEFAULT NULL COMMENT '图标', - `type` int(1) DEFAULT NULL COMMENT '权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)', - `uri` varchar(200) DEFAULT NULL COMMENT '前端资源路径', - `status` int(1) DEFAULT NULL COMMENT '启用状态;0->禁用;1->启用', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `sort` int(11) DEFAULT NULL COMMENT '排序', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='后台用户权限表'; + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类名称', + `sort` int(4) NULL DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '资源分类表' ROW_FORMAT = Dynamic; -- ---------------------------- --- Records of ums_permission --- ---------------------------- -INSERT INTO `ums_permission` VALUES ('1', '0', '商品', null, null, '0', null, '1', '2018-09-29 16:15:14', '0'); -INSERT INTO `ums_permission` VALUES ('2', '1', '商品列表', 'pms:product:read', null, '1', '/pms/product/index', '1', '2018-09-29 16:17:01', '0'); -INSERT INTO `ums_permission` VALUES ('3', '1', '添加商品', 'pms:product:create', null, '1', '/pms/product/add', '1', '2018-09-29 16:18:51', '0'); -INSERT INTO `ums_permission` VALUES ('4', '1', '商品分类', 'pms:productCategory:read', null, '1', '/pms/productCate/index', '1', '2018-09-29 16:23:07', '0'); -INSERT INTO `ums_permission` VALUES ('5', '1', '商品类型', 'pms:productAttribute:read', null, '1', '/pms/productAttr/index', '1', '2018-09-29 16:24:43', '0'); -INSERT INTO `ums_permission` VALUES ('6', '1', '品牌管理', 'pms:brand:read', null, '1', '/pms/brand/index', '1', '2018-09-29 16:25:45', '0'); -INSERT INTO `ums_permission` VALUES ('7', '2', '编辑商品', 'pms:product:update', null, '2', '/pms/product/updateProduct', '1', '2018-09-29 16:34:23', '0'); -INSERT INTO `ums_permission` VALUES ('8', '2', '删除商品', 'pms:product:delete', null, '2', '/pms/product/delete', '1', '2018-09-29 16:38:33', '0'); -INSERT INTO `ums_permission` VALUES ('9', '4', '添加商品分类', 'pms:productCategory:create', null, '2', '/pms/productCate/create', '1', '2018-09-29 16:43:23', '0'); -INSERT INTO `ums_permission` VALUES ('10', '4', '修改商品分类', 'pms:productCategory:update', null, '2', '/pms/productCate/update', '1', '2018-09-29 16:43:55', '0'); -INSERT INTO `ums_permission` VALUES ('11', '4', '删除商品分类', 'pms:productCategory:delete', null, '2', '/pms/productAttr/delete', '1', '2018-09-29 16:44:38', '0'); -INSERT INTO `ums_permission` VALUES ('12', '5', '添加商品类型', 'pms:productAttribute:create', null, '2', '/pms/productAttr/create', '1', '2018-09-29 16:45:25', '0'); -INSERT INTO `ums_permission` VALUES ('13', '5', '修改商品类型', 'pms:productAttribute:update', null, '2', '/pms/productAttr/update', '1', '2018-09-29 16:48:08', '0'); -INSERT INTO `ums_permission` VALUES ('14', '5', '删除商品类型', 'pms:productAttribute:delete', null, '2', '/pms/productAttr/delete', '1', '2018-09-29 16:48:44', '0'); -INSERT INTO `ums_permission` VALUES ('15', '6', '添加品牌', 'pms:brand:create', null, '2', '/pms/brand/add', '1', '2018-09-29 16:49:34', '0'); -INSERT INTO `ums_permission` VALUES ('16', '6', '修改品牌', 'pms:brand:update', null, '2', '/pms/brand/update', '1', '2018-09-29 16:50:55', '0'); -INSERT INTO `ums_permission` VALUES ('17', '6', '删除品牌', 'pms:brand:delete', null, '2', '/pms/brand/delete', '1', '2018-09-29 16:50:59', '0'); -INSERT INTO `ums_permission` VALUES ('18', '0', '首页', null, null, '0', null, '1', '2018-09-29 16:51:57', '0'); +-- Records of ums_resource_category +-- ---------------------------- +INSERT INTO `ums_resource_category` VALUES (1, '2020-02-05 10:21:44', '商品模块', 0); +INSERT INTO `ums_resource_category` VALUES (2, '2020-02-05 10:22:34', '订单模块', 0); +INSERT INTO `ums_resource_category` VALUES (3, '2020-02-05 10:22:48', '营销模块', 0); +INSERT INTO `ums_resource_category` VALUES (4, '2020-02-05 10:23:04', '权限模块', 0); +INSERT INTO `ums_resource_category` VALUES (5, '2020-02-07 16:34:27', '内容模块', 0); +INSERT INTO `ums_resource_category` VALUES (6, '2020-02-07 16:35:49', '其他模块', 0); -- ---------------------------- -- Table structure for ums_role -- ---------------------------- DROP TABLE IF EXISTS `ums_role`; -CREATE TABLE `ums_role` ( +CREATE TABLE `ums_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(100) DEFAULT NULL COMMENT '名称', - `description` varchar(500) DEFAULT NULL COMMENT '描述', - `admin_count` int(11) DEFAULT NULL COMMENT '后台用户数量', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `status` int(1) DEFAULT '1' COMMENT '启用状态:0->禁用;1->启用', - `sort` int(11) DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='后台用户角色表'; + `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称', + `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述', + `admin_count` int(11) NULL DEFAULT NULL COMMENT '后台用户数量', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `status` int(1) NULL DEFAULT 1 COMMENT '启用状态:0->禁用;1->启用', + `sort` int(11) NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户角色表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of ums_role -- ---------------------------- -INSERT INTO `ums_role` VALUES ('1', '商品管理员', '商品管理员', '0', '2018-09-30 15:46:11', '1', '0'); -INSERT INTO `ums_role` VALUES ('2', '商品分类管理员', '商品分类管理员', '0', '2018-09-30 15:53:45', '1', '0'); -INSERT INTO `ums_role` VALUES ('3', '商品类型管理员', '商品类型管理员', '0', '2018-09-30 15:53:56', '1', '0'); -INSERT INTO `ums_role` VALUES ('4', '品牌管理员', '品牌管理员', '0', '2018-09-30 15:54:12', '1', '0'); +INSERT INTO `ums_role` VALUES (1, '商品管理员', '只能查看及操作商品', 0, '2020-02-03 16:50:37', 1, 0); +INSERT INTO `ums_role` VALUES (2, '订单管理员', '只能查看及操作订单', 0, '2018-09-30 15:53:45', 1, 0); +INSERT INTO `ums_role` VALUES (5, '超级管理员', '拥有所有查看和操作功能', 0, '2020-02-02 15:11:05', 1, 0); +INSERT INTO `ums_role` VALUES (8, '权限管理员', '用于权限模块所有操作功能', 0, '2020-08-24 10:57:35', 1, 0); -- ---------------------------- --- Table structure for ums_role_permission_relation +-- Table structure for ums_role_menu_relation -- ---------------------------- -DROP TABLE IF EXISTS `ums_role_permission_relation`; -CREATE TABLE `ums_role_permission_relation` ( +DROP TABLE IF EXISTS `ums_role_menu_relation`; +CREATE TABLE `ums_role_menu_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `role_id` bigint(20) DEFAULT NULL, - `permission_id` bigint(20) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='后台用户角色和权限关系表'; + `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID', + `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单ID', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 111 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台角色菜单关系表' ROW_FORMAT = Dynamic; -- ---------------------------- --- Records of ums_role_permission_relation --- ---------------------------- -INSERT INTO `ums_role_permission_relation` VALUES ('1', '1', '1'); -INSERT INTO `ums_role_permission_relation` VALUES ('2', '1', '2'); -INSERT INTO `ums_role_permission_relation` VALUES ('3', '1', '3'); -INSERT INTO `ums_role_permission_relation` VALUES ('4', '1', '7'); -INSERT INTO `ums_role_permission_relation` VALUES ('5', '1', '8'); -INSERT INTO `ums_role_permission_relation` VALUES ('6', '2', '4'); -INSERT INTO `ums_role_permission_relation` VALUES ('7', '2', '9'); -INSERT INTO `ums_role_permission_relation` VALUES ('8', '2', '10'); -INSERT INTO `ums_role_permission_relation` VALUES ('9', '2', '11'); -INSERT INTO `ums_role_permission_relation` VALUES ('10', '3', '5'); -INSERT INTO `ums_role_permission_relation` VALUES ('11', '3', '12'); -INSERT INTO `ums_role_permission_relation` VALUES ('12', '3', '13'); -INSERT INTO `ums_role_permission_relation` VALUES ('13', '3', '14'); -INSERT INTO `ums_role_permission_relation` VALUES ('14', '4', '6'); -INSERT INTO `ums_role_permission_relation` VALUES ('15', '4', '15'); -INSERT INTO `ums_role_permission_relation` VALUES ('16', '4', '16'); -INSERT INTO `ums_role_permission_relation` VALUES ('17', '4', '17'); +-- Records of ums_role_menu_relation +-- ---------------------------- +INSERT INTO `ums_role_menu_relation` VALUES (33, 1, 1); +INSERT INTO `ums_role_menu_relation` VALUES (34, 1, 2); +INSERT INTO `ums_role_menu_relation` VALUES (35, 1, 3); +INSERT INTO `ums_role_menu_relation` VALUES (36, 1, 4); +INSERT INTO `ums_role_menu_relation` VALUES (37, 1, 5); +INSERT INTO `ums_role_menu_relation` VALUES (38, 1, 6); +INSERT INTO `ums_role_menu_relation` VALUES (53, 2, 7); +INSERT INTO `ums_role_menu_relation` VALUES (54, 2, 8); +INSERT INTO `ums_role_menu_relation` VALUES (55, 2, 9); +INSERT INTO `ums_role_menu_relation` VALUES (56, 2, 10); +INSERT INTO `ums_role_menu_relation` VALUES (57, 2, 11); +INSERT INTO `ums_role_menu_relation` VALUES (72, 5, 1); +INSERT INTO `ums_role_menu_relation` VALUES (73, 5, 2); +INSERT INTO `ums_role_menu_relation` VALUES (74, 5, 3); +INSERT INTO `ums_role_menu_relation` VALUES (75, 5, 4); +INSERT INTO `ums_role_menu_relation` VALUES (76, 5, 5); +INSERT INTO `ums_role_menu_relation` VALUES (77, 5, 6); +INSERT INTO `ums_role_menu_relation` VALUES (78, 5, 7); +INSERT INTO `ums_role_menu_relation` VALUES (79, 5, 8); +INSERT INTO `ums_role_menu_relation` VALUES (80, 5, 9); +INSERT INTO `ums_role_menu_relation` VALUES (81, 5, 10); +INSERT INTO `ums_role_menu_relation` VALUES (82, 5, 11); +INSERT INTO `ums_role_menu_relation` VALUES (83, 5, 12); +INSERT INTO `ums_role_menu_relation` VALUES (84, 5, 13); +INSERT INTO `ums_role_menu_relation` VALUES (85, 5, 14); +INSERT INTO `ums_role_menu_relation` VALUES (86, 5, 16); +INSERT INTO `ums_role_menu_relation` VALUES (87, 5, 17); +INSERT INTO `ums_role_menu_relation` VALUES (88, 5, 18); +INSERT INTO `ums_role_menu_relation` VALUES (89, 5, 19); +INSERT INTO `ums_role_menu_relation` VALUES (90, 5, 20); +INSERT INTO `ums_role_menu_relation` VALUES (91, 5, 21); +INSERT INTO `ums_role_menu_relation` VALUES (92, 5, 22); +INSERT INTO `ums_role_menu_relation` VALUES (93, 5, 23); +INSERT INTO `ums_role_menu_relation` VALUES (94, 5, 24); +INSERT INTO `ums_role_menu_relation` VALUES (95, 5, 25); +INSERT INTO `ums_role_menu_relation` VALUES (96, 6, 21); +INSERT INTO `ums_role_menu_relation` VALUES (97, 6, 22); +INSERT INTO `ums_role_menu_relation` VALUES (98, 6, 23); +INSERT INTO `ums_role_menu_relation` VALUES (99, 6, 24); +INSERT INTO `ums_role_menu_relation` VALUES (100, 6, 25); +INSERT INTO `ums_role_menu_relation` VALUES (101, 7, 21); +INSERT INTO `ums_role_menu_relation` VALUES (102, 7, 22); +INSERT INTO `ums_role_menu_relation` VALUES (103, 7, 23); +INSERT INTO `ums_role_menu_relation` VALUES (104, 7, 24); +INSERT INTO `ums_role_menu_relation` VALUES (105, 7, 25); +INSERT INTO `ums_role_menu_relation` VALUES (106, 8, 21); +INSERT INTO `ums_role_menu_relation` VALUES (107, 8, 22); +INSERT INTO `ums_role_menu_relation` VALUES (108, 8, 23); +INSERT INTO `ums_role_menu_relation` VALUES (109, 8, 24); +INSERT INTO `ums_role_menu_relation` VALUES (110, 8, 25); + +-- ---------------------------- +-- Table structure for ums_role_resource_relation +-- ---------------------------- +DROP TABLE IF EXISTS `ums_role_resource_relation`; +CREATE TABLE `ums_role_resource_relation` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID', + `resource_id` bigint(20) NULL DEFAULT NULL COMMENT '资源ID', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 216 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台角色资源关系表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of ums_role_resource_relation +-- ---------------------------- +INSERT INTO `ums_role_resource_relation` VALUES (103, 2, 8); +INSERT INTO `ums_role_resource_relation` VALUES (104, 2, 9); +INSERT INTO `ums_role_resource_relation` VALUES (105, 2, 10); +INSERT INTO `ums_role_resource_relation` VALUES (106, 2, 11); +INSERT INTO `ums_role_resource_relation` VALUES (107, 2, 12); +INSERT INTO `ums_role_resource_relation` VALUES (142, 5, 1); +INSERT INTO `ums_role_resource_relation` VALUES (143, 5, 2); +INSERT INTO `ums_role_resource_relation` VALUES (144, 5, 3); +INSERT INTO `ums_role_resource_relation` VALUES (145, 5, 4); +INSERT INTO `ums_role_resource_relation` VALUES (146, 5, 5); +INSERT INTO `ums_role_resource_relation` VALUES (147, 5, 6); +INSERT INTO `ums_role_resource_relation` VALUES (148, 5, 8); +INSERT INTO `ums_role_resource_relation` VALUES (149, 5, 9); +INSERT INTO `ums_role_resource_relation` VALUES (150, 5, 10); +INSERT INTO `ums_role_resource_relation` VALUES (151, 5, 11); +INSERT INTO `ums_role_resource_relation` VALUES (152, 5, 12); +INSERT INTO `ums_role_resource_relation` VALUES (153, 5, 13); +INSERT INTO `ums_role_resource_relation` VALUES (154, 5, 14); +INSERT INTO `ums_role_resource_relation` VALUES (155, 5, 15); +INSERT INTO `ums_role_resource_relation` VALUES (156, 5, 16); +INSERT INTO `ums_role_resource_relation` VALUES (157, 5, 17); +INSERT INTO `ums_role_resource_relation` VALUES (158, 5, 18); +INSERT INTO `ums_role_resource_relation` VALUES (159, 5, 19); +INSERT INTO `ums_role_resource_relation` VALUES (160, 5, 20); +INSERT INTO `ums_role_resource_relation` VALUES (161, 5, 21); +INSERT INTO `ums_role_resource_relation` VALUES (162, 5, 22); +INSERT INTO `ums_role_resource_relation` VALUES (163, 5, 23); +INSERT INTO `ums_role_resource_relation` VALUES (164, 5, 24); +INSERT INTO `ums_role_resource_relation` VALUES (165, 5, 25); +INSERT INTO `ums_role_resource_relation` VALUES (166, 5, 26); +INSERT INTO `ums_role_resource_relation` VALUES (167, 5, 27); +INSERT INTO `ums_role_resource_relation` VALUES (168, 5, 28); +INSERT INTO `ums_role_resource_relation` VALUES (169, 5, 29); +INSERT INTO `ums_role_resource_relation` VALUES (170, 1, 1); +INSERT INTO `ums_role_resource_relation` VALUES (171, 1, 2); +INSERT INTO `ums_role_resource_relation` VALUES (172, 1, 3); +INSERT INTO `ums_role_resource_relation` VALUES (173, 1, 4); +INSERT INTO `ums_role_resource_relation` VALUES (174, 1, 5); +INSERT INTO `ums_role_resource_relation` VALUES (175, 1, 6); +INSERT INTO `ums_role_resource_relation` VALUES (176, 1, 23); +INSERT INTO `ums_role_resource_relation` VALUES (177, 1, 24); +INSERT INTO `ums_role_resource_relation` VALUES (178, 6, 25); +INSERT INTO `ums_role_resource_relation` VALUES (179, 6, 26); +INSERT INTO `ums_role_resource_relation` VALUES (180, 6, 27); +INSERT INTO `ums_role_resource_relation` VALUES (181, 6, 28); +INSERT INTO `ums_role_resource_relation` VALUES (182, 6, 29); +INSERT INTO `ums_role_resource_relation` VALUES (205, 7, 25); +INSERT INTO `ums_role_resource_relation` VALUES (206, 7, 26); +INSERT INTO `ums_role_resource_relation` VALUES (207, 7, 27); +INSERT INTO `ums_role_resource_relation` VALUES (208, 7, 28); +INSERT INTO `ums_role_resource_relation` VALUES (209, 7, 29); +INSERT INTO `ums_role_resource_relation` VALUES (210, 7, 31); +INSERT INTO `ums_role_resource_relation` VALUES (211, 8, 25); +INSERT INTO `ums_role_resource_relation` VALUES (212, 8, 26); +INSERT INTO `ums_role_resource_relation` VALUES (213, 8, 27); +INSERT INTO `ums_role_resource_relation` VALUES (214, 8, 28); +INSERT INTO `ums_role_resource_relation` VALUES (215, 8, 29); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/mall-tiny-01/pom.xml b/mall-tiny-01/pom.xml index 588fb63d..1029edba 100644 --- a/mall-tiny-01/pom.xml +++ b/mall-tiny-01/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-01 - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-01 Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,25 +37,37 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} + + + + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ad775947 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,10 +4,12 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") +@MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) public class MyBatisConfig { } diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 07d9b067..1c2faccc 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -15,28 +15,30 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Controller @RequestMapping("/brand") public class PmsBrandController { @Autowired - private PmsBrandService demoService; + private PmsBrandService brandService; private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - @RequestMapping(value = "listAll", method = RequestMethod.GET) + @RequestMapping(value = "/listAll", method = RequestMethod.GET) @ResponseBody public CommonResult> getBrandList() { - return CommonResult.success(demoService.listAllBrand()); + return CommonResult.success(brandService.listAllBrand()); } @RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { CommonResult commonResult; - int count = demoService.createBrand(pmsBrand); + int count = brandService.createBrand(pmsBrand); if (count == 1) { commonResult = CommonResult.success(pmsBrand); LOGGER.debug("createBrand success:{}", pmsBrand); @@ -51,7 +53,7 @@ public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { @ResponseBody public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { CommonResult commonResult; - int count = demoService.updateBrand(id, pmsBrandDto); + int count = brandService.updateBrand(id, pmsBrandDto); if (count == 1) { commonResult = CommonResult.success(pmsBrandDto); LOGGER.debug("updateBrand success:{}", pmsBrandDto); @@ -65,7 +67,7 @@ public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBra @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) @ResponseBody public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = demoService.deleteBrand(id); + int count = brandService.deleteBrand(id); if (count == 1) { LOGGER.debug("deleteBrand success :id={}", id); return CommonResult.success(null); @@ -79,13 +81,13 @@ public CommonResult deleteBrand(@PathVariable("id") Long id) { @ResponseBody public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "3") Integer pageSize) { - List brandList = demoService.listBrand(pageNum, pageSize); + List brandList = brandService.listBrand(pageNum, pageSize); return CommonResult.success(CommonPage.restPage(brandList)); } @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(demoService.getBrand(id)); + return CommonResult.success(brandService.getBrand(id)); } } diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index ce3ef46c..9ab7143b 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -9,8 +9,10 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; @@ -48,7 +50,7 @@ private void addFieldJavaDoc(Field field, String remarks) { for (String remarkLine : remarkLines) { field.addJavaDocLine(" * " + remarkLine); } - addJavadocTag(field, false); +// addJavadocTag(field, false); field.addJavaDocLine(" */"); } diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java index 617584fb..408d4737 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -6,15 +6,15 @@ import org.apache.ibatis.annotations.Param; public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); + long countByExample(PmsBrandExample example); int deleteByExample(PmsBrandExample example); int deleteByPrimaryKey(Long id); - int insert(PmsBrand record); + int insert(PmsBrand row); - int insertSelective(PmsBrand record); + int insertSelective(PmsBrand row); List selectByExampleWithBLOBs(PmsBrandExample example); @@ -22,15 +22,15 @@ public interface PmsBrandMapper { PmsBrand selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByPrimaryKeySelective(PmsBrand record); + int updateByPrimaryKeySelective(PmsBrand row); - int updateByPrimaryKeyWithBLOBs(PmsBrand record); + int updateByPrimaryKeyWithBLOBs(PmsBrand row); - int updateByPrimaryKey(PmsBrand record); + int updateByPrimaryKey(PmsBrand row); } \ No newline at end of file diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java index 788420c5..49a04205 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java @@ -3,60 +3,58 @@ import java.io.Serializable; public class PmsBrand implements Serializable { + /** + * 主键ID + */ private Long id; + /** + * 名称 + */ private String name; /** * 首字母 - * - * @mbggenerated */ private String firstLetter; + /** + * 排序 + */ private Integer sort; /** * 是否为品牌制造商:0->不是;1->是 - * - * @mbggenerated */ private Integer factoryStatus; + /** + * 是否显示 + */ private Integer showStatus; /** * 产品数量 - * - * @mbggenerated */ private Integer productCount; /** * 产品评论数量 - * - * @mbggenerated */ private Integer productCommentCount; /** * 品牌logo - * - * @mbggenerated */ private String logo; /** * 专区大图 - * - * @mbggenerated */ private String bigPic; /** * 品牌故事 - * - * @mbggenerated */ private String brandStory; diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java index 4e4a1108..c7e5880b 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -11,7 +11,7 @@ public class PmsBrandExample { protected List oredCriteria; public PmsBrandExample() { - oredCriteria = new ArrayList(); + oredCriteria = new ArrayList<>(); } public void setOrderByClause(String orderByClause) { @@ -68,7 +68,7 @@ protected abstract static class GeneratedCriteria { protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -746,7 +746,6 @@ public Criteria andBigPicNotBetween(String value1, String value2) { } public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-01/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-01/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-01/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-01/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-01/src/main/resources/application.yml b/mall-tiny-01/src/main/resources/application.yml index 5edcbdbc..2b112a8e 100644 --- a/mall-tiny-01/src/main/resources/application.yml +++ b/mall-tiny-01/src/main/resources/application.yml @@ -3,11 +3,11 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-01/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-01/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml index 1842e269..8d47261a 100644 --- a/mall-tiny-01/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ b/mall-tiny-01/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -212,7 +212,7 @@ - select count(*) from pms_brand @@ -221,74 +221,74 @@ update pms_brand - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, - - show_status = #{record.showStatus,jdbcType=INTEGER}, + + show_status = #{row.showStatus,jdbcType=INTEGER}, - - product_count = #{record.productCount,jdbcType=INTEGER}, + + product_count = #{row.productCount,jdbcType=INTEGER}, - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, - - logo = #{record.logo,jdbcType=VARCHAR}, + + logo = #{row.logo,jdbcType=VARCHAR}, - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, - + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + diff --git a/mall-tiny-01/src/main/resources/generator.properties b/mall-tiny-01/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-01/src/main/resources/generator.properties +++ b/mall-tiny-01/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-01/src/main/resources/generatorConfig.xml b/mall-tiny-01/src/main/resources/generatorConfig.xml index 193e83c1..d93c028f 100644 --- a/mall-tiny-01/src/main/resources/generatorConfig.xml +++ b/mall-tiny-01/src/main/resources/generatorConfig.xml @@ -6,33 +6,40 @@ + + + + + - + + + - + - + - + - + - + diff --git a/mall-tiny-01/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-01/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..3a562ef8 100644 --- a/mall-tiny-01/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-01/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,8 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-02/pom.xml b/mall-tiny-02/pom.xml index 752cd722..4a573c4d 100644 --- a/mall-tiny-02/pom.xml +++ b/mall-tiny-02/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-02 - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-02 Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,36 +37,43 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.7 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ec54365e 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.mbg.mapper") diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 3918a401..caa97432 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,32 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger相关配置 + * @date 2022/11/23 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } @@ -35,8 +42,42 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + } diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 857c9eca..6d3295e5 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,11 +19,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..e3581bd5 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -17,6 +17,7 @@ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +36,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +67,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java index 37d62163..408d4737 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -12,9 +12,9 @@ public interface PmsBrandMapper { int deleteByPrimaryKey(Long id); - int insert(PmsBrand record); + int insert(PmsBrand row); - int insertSelective(PmsBrand record); + int insertSelective(PmsBrand row); List selectByExampleWithBLOBs(PmsBrandExample example); @@ -22,15 +22,15 @@ public interface PmsBrandMapper { PmsBrand selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByPrimaryKeySelective(PmsBrand record); + int updateByPrimaryKeySelective(PmsBrand row); - int updateByPrimaryKeyWithBLOBs(PmsBrand record); + int updateByPrimaryKeyWithBLOBs(PmsBrand row); - int updateByPrimaryKey(PmsBrand record); + int updateByPrimaryKey(PmsBrand row); } \ No newline at end of file diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java index 0d5dde95..5750cd16 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java @@ -4,18 +4,22 @@ import java.io.Serializable; public class PmsBrand implements Serializable { + @ApiModelProperty(value = "主键ID") private Long id; + @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "首字母") private String firstLetter; + @ApiModelProperty(value = "排序") private Integer sort; @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") private Integer factoryStatus; + @ApiModelProperty(value = "是否显示") private Integer showStatus; @ApiModelProperty(value = "产品数量") diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java index 4e4a1108..c7e5880b 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -11,7 +11,7 @@ public class PmsBrandExample { protected List oredCriteria; public PmsBrandExample() { - oredCriteria = new ArrayList(); + oredCriteria = new ArrayList<>(); } public void setOrderByClause(String orderByClause) { @@ -68,7 +68,7 @@ protected abstract static class GeneratedCriteria { protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -746,7 +746,6 @@ public Criteria andBigPicNotBetween(String value1, String value2) { } public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-02/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-02/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-02/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-02/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-02/src/main/resources/application.yml b/mall-tiny-02/src/main/resources/application.yml index 5edcbdbc..37c67828 100644 --- a/mall-tiny-02/src/main/resources/application.yml +++ b/mall-tiny-02/src/main/resources/application.yml @@ -3,11 +3,14 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-02/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-02/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml index 51b5436b..8d47261a 100644 --- a/mall-tiny-02/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ b/mall-tiny-02/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -221,74 +221,74 @@ update pms_brand - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, - - show_status = #{record.showStatus,jdbcType=INTEGER}, + + show_status = #{row.showStatus,jdbcType=INTEGER}, - - product_count = #{record.productCount,jdbcType=INTEGER}, + + product_count = #{row.productCount,jdbcType=INTEGER}, - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, - - logo = #{record.logo,jdbcType=VARCHAR}, + + logo = #{row.logo,jdbcType=VARCHAR}, - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, - + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + diff --git a/mall-tiny-02/src/main/resources/generator.properties b/mall-tiny-02/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-02/src/main/resources/generator.properties +++ b/mall-tiny-02/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-02/src/main/resources/generatorConfig.xml b/mall-tiny-02/src/main/resources/generatorConfig.xml index 3cce6192..0b97b423 100644 --- a/mall-tiny-02/src/main/resources/generatorConfig.xml +++ b/mall-tiny-02/src/main/resources/generatorConfig.xml @@ -6,35 +6,40 @@ + + + + + - - - + + + - + - + - + - + - + diff --git a/mall-tiny-02/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-02/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-02/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-02/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-03/pom.xml b/mall-tiny-03/pom.xml index c57e8f46..3bd30f2c 100644 --- a/mall-tiny-03/pom.xml +++ b/mall-tiny-03/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-03 - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-03 Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,38 +37,45 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} - + org.springframework.boot spring-boot-starter-data-redis diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ec54365e 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.mbg.mapper") diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/RedisConfig.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/RedisConfig.java new file mode 100644 index 00000000..c93b29ac --- /dev/null +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/RedisConfig.java @@ -0,0 +1,71 @@ +package com.macro.mall.tiny.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 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; + +/** + * @auther macrozheng + * @description Redis配置类 + * @date 2020/3/2 + * @github https://github.com/macrozheng + */ +@EnableCaching +@Configuration +public class RedisConfig { + + /** + * redis数据库自定义key + */ + public static final String REDIS_KEY_DATABASE="mall"; + + @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); + } + +} diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 3918a401..caa97432 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,32 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger相关配置 + * @date 2022/11/23 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } @@ -35,8 +42,42 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + } diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 857c9eca..6d3295e5 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,11 +19,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java index c936c689..5825367b 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.UmsMemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员登录注册管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") +@Api(tags = "UmsMemberController") +@Tag(name = "UmsMemberController", description = "会员登录注册管理") @RequestMapping("/sso") public class UmsMemberController { @Autowired diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/RedisService.java index 191ab73b..370c456c 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/RedisService.java @@ -1,35 +1,184 @@ package com.macro.mall.tiny.service; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作Service + * @date 2020/3/3 + * @github https://github.com/macrozheng */ public interface RedisService { + + /** + * 保存属性 + */ + void set(String key, Object value, long time); + + /** + * 保存属性 + */ + void set(String key, Object value); + + /** + * 获取属性 + */ + Object get(String key); + + /** + * 删除属性 + */ + Boolean del(String key); + + /** + * 批量删除属性 + */ + Long del(List keys); + + /** + * 设置过期时间 + */ + Boolean expire(String key, long time); + + /** + * 获取过期时间 + */ + Long getExpire(String key); + + /** + * 判断是否有该属性 + */ + Boolean hasKey(String key); + + /** + * 按delta递增 + */ + Long incr(String key, long delta); + + /** + * 按delta递减 + */ + Long decr(String key, long delta); + + /** + * 获取Hash结构中的属性 + */ + Object hGet(String key, String hashKey); + + /** + * 向Hash结构中放入一个属性 + */ + Boolean hSet(String key, String hashKey, Object value, long time); + + /** + * 向Hash结构中放入一个属性 + */ + void hSet(String key, String hashKey, Object value); + + /** + * 直接获取整个Hash结构 + */ + Map hGetAll(String key); + /** - * 存储数据 + * 直接设置整个Hash结构 */ - void set(String key, String value); + Boolean hSetAll(String key, Map map, long time); /** - * 获取数据 + * 直接设置整个Hash结构 */ - String get(String key); + void hSetAll(String key, Map map); /** - * 设置超期时间 + * 删除Hash结构中的属性 */ - boolean expire(String key, long expire); + void hDel(String key, Object... hashKey); /** - * 删除数据 + * 判断Hash结构中是否有该属性 */ - void remove(String key); + Boolean hHasKey(String key, String hashKey); /** - * 自增操作 - * @param delta 自增步长 + * Hash结构中属性递增 */ - Long increment(String key, long delta); + Long hIncr(String key, String hashKey, Long delta); -} + /** + * Hash结构中属性递减 + */ + Long hDecr(String key, String hashKey, Long delta); + + /** + * 获取Set结构 + */ + Set sMembers(String key); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, Object... values); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, long time, Object... values); + + /** + * 是否为Set中的属性 + */ + Boolean sIsMember(String key, Object value); + + /** + * 获取Set结构的长度 + */ + Long sSize(String key); + + /** + * 删除Set结构中的属性 + */ + Long sRemove(String key, Object... values); + + /** + * 获取List结构中的属性 + */ + List lRange(String key, long start, long end); + + /** + * 获取List结构的长度 + */ + Long lSize(String key); + + /** + * 根据索引获取List中的属性 + */ + Object lIndex(String key, long index); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value, long time); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Object... values); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Long time, Object... values); + + /** + * 从List结构中移除属性 + */ + Long lRemove(String key, long count, Object value); +} \ No newline at end of file diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java index f9fd8ac9..8cf694d3 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.common.api.CommonResult; /** - * 会员管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface UmsMemberService { diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java index cb9d7e0c..8ff149fd 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java @@ -2,42 +2,200 @@ import com.macro.mall.tiny.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; /** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作实现类 + * @date 2020/3/3 + * @github https://github.com/macrozheng */ @Service public class RedisServiceImpl implements RedisService { @Autowired - private StringRedisTemplate stringRedisTemplate; + private RedisTemplate redisTemplate; @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); + public void set(String key, Object value, long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); + public void set(String key, Object value) { + redisTemplate.opsForValue().set(key, value); } @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); + public Object get(String key) { + return redisTemplate.opsForValue().get(key); } @Override - public void remove(String key) { - stringRedisTemplate.delete(key); + public Boolean del(String key) { + return redisTemplate.delete(key); } @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); + public Long del(List keys) { + return redisTemplate.delete(keys); + } + + @Override + public Boolean expire(String key, long time) { + return redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + + @Override + public Long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + @Override + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + @Override + public Long incr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, delta); + } + + @Override + public Long decr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, -delta); + } + + @Override + public Object hGet(String key, String hashKey) { + return redisTemplate.opsForHash().get(key, hashKey); + } + + @Override + public Boolean hSet(String key, String hashKey, Object value, long time) { + redisTemplate.opsForHash().put(key, hashKey, value); + return expire(key, time); + } + + @Override + public void hSet(String key, String hashKey, Object value) { + redisTemplate.opsForHash().put(key, hashKey, value); + } + + @Override + public Map hGetAll(String key) { + return redisTemplate.opsForHash().entries(key); + } + + @Override + public Boolean hSetAll(String key, Map map, long time) { + redisTemplate.opsForHash().putAll(key, map); + return expire(key, time); + } + + @Override + public void hSetAll(String key, Map map) { + redisTemplate.opsForHash().putAll(key, map); + } + + @Override + public void hDel(String key, Object... hashKey) { + redisTemplate.opsForHash().delete(key, hashKey); + } + + @Override + public Boolean hHasKey(String key, String hashKey) { + return redisTemplate.opsForHash().hasKey(key, hashKey); + } + + @Override + public Long hIncr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, delta); + } + + @Override + public Long hDecr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, -delta); + } + + @Override + public Set sMembers(String key) { + return redisTemplate.opsForSet().members(key); + } + + @Override + public Long sAdd(String key, Object... values) { + return redisTemplate.opsForSet().add(key, values); + } + + @Override + public Long sAdd(String key, long time, Object... values) { + Long count = redisTemplate.opsForSet().add(key, values); + expire(key, time); + return count; + } + + @Override + public Boolean sIsMember(String key, Object value) { + return redisTemplate.opsForSet().isMember(key, value); + } + + @Override + public Long sSize(String key) { + return redisTemplate.opsForSet().size(key); + } + + @Override + public Long sRemove(String key, Object... values) { + return redisTemplate.opsForSet().remove(key, values); + } + + @Override + public List lRange(String key, long start, long end) { + return redisTemplate.opsForList().range(key, start, end); + } + + @Override + public Long lSize(String key) { + return redisTemplate.opsForList().size(key); + } + + @Override + public Object lIndex(String key, long index) { + return redisTemplate.opsForList().index(key, index); + } + + @Override + public Long lPush(String key, Object value) { + return redisTemplate.opsForList().rightPush(key, value); + } + + @Override + public Long lPush(String key, Object value, long time) { + Long index = redisTemplate.opsForList().rightPush(key, value); + expire(key, time); + return index; + } + + @Override + public Long lPushAll(String key, Object... values) { + return redisTemplate.opsForList().rightPushAll(key, values); + } + + @Override + public Long lPushAll(String key, Long time, Object... values) { + Long count = redisTemplate.opsForList().rightPushAll(key, values); + expire(key, time); + return count; + } + + @Override + public Long lRemove(String key, long count, Object value) { + return redisTemplate.opsForList().remove(key, count, value); } } diff --git a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java index 06378693..6c6aeb7f 100644 --- a/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ b/mall-tiny-03/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.util.StrUtil; import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.service.RedisService; import com.macro.mall.tiny.service.UmsMemberService; @@ -11,8 +12,10 @@ import java.util.Random; /** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class UmsMemberServiceImpl implements UmsMemberService { @@ -40,10 +43,10 @@ public CommonResult generateAuthCode(String telephone) { //对输入的验证码进行校验 @Override public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { + if (StrUtil.isEmpty(authCode)) { return CommonResult.failed("请输入验证码"); } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); + String realAuthCode = (String) redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); boolean result = authCode.equals(realAuthCode); if (result) { return CommonResult.success(null, "验证码校验成功"); diff --git a/mall-tiny-03/src/main/resources/application.yml b/mall-tiny-03/src/main/resources/application.yml index a2059c17..7ee578e0 100644 --- a/mall-tiny-03/src/main/resources/application.yml +++ b/mall-tiny-03/src/main/resources/application.yml @@ -3,25 +3,27 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) - jedis: + lettuce: pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) + max-active: 8 # 连接池最大连接数 + max-idle: 8 # 连接池最大空闲连接数 + min-idle: 0 # 连接池最小空闲连接数 + max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制 mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml # 自定义redis key redis: diff --git a/mall-tiny-03/src/main/resources/generator.properties b/mall-tiny-03/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-03/src/main/resources/generator.properties +++ b/mall-tiny-03/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-03/src/main/resources/generatorConfig.xml b/mall-tiny-03/src/main/resources/generatorConfig.xml index 174639f0..699f92ca 100644 --- a/mall-tiny-03/src/main/resources/generatorConfig.xml +++ b/mall-tiny-03/src/main/resources/generatorConfig.xml @@ -6,33 +6,40 @@ + + + + + - + + + - + - + - + - + - + diff --git a/mall-tiny-03/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-03/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-03/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-03/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-04/pom.xml b/mall-tiny-04/pom.xml index cac2ee53..94b06c17 100644 --- a/mall-tiny-04/pom.xml +++ b/mall-tiny-04/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-04 - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-04 Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,38 +37,45 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} - + org.springframework.boot spring-boot-starter-data-redis @@ -82,17 +85,11 @@ org.springframework.boot spring-boot-starter-security - - - cn.hutool - hutool-all - 4.5.7 - io.jsonwebtoken jjwt - 0.9.0 + ${jjwt.version} diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java index 5ec26f6c..89e32146 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java @@ -14,7 +14,8 @@ import java.util.Map; /** - * JwtToken生成的工具类 + * @auther macrozheng + * @description JwtToken生成的工具类 * JWT token的格式:header.payload.signature * header的格式(算法、token的类型): * {"alg": "HS512","typ": "JWT"} @@ -22,7 +23,8 @@ * {"sub":"wang","created":1489079981393,"exp":1489684781} * signature的生成算法: * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class JwtTokenUtil { @@ -35,7 +37,7 @@ public class JwtTokenUtil { private Long expiration; /** - * 根据负责生成JWT的token + * 根据负载生成JWT的token */ private String generateToken(Map claims) { return Jwts.builder() diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java index abdb7b71..65cc9fcb 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java @@ -19,8 +19,10 @@ import java.io.IOException; /** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description JWT登录授权过滤器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java index 757df36c..1445038f 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. + * @auther macrozheng + * @description 当未登录或者token失效访问接口时,自定义的返回结果 + * @date 2018/5/14 + * @github https://github.com/macrozheng */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java index bc201cce..769dbfc3 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 当访问接口没有权限时,自定义的返回结果 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java new file mode 100644 index 00000000..21fa1f30 --- /dev/null +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java @@ -0,0 +1,25 @@ +package com.macro.mall.tiny.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @auther macrozheng + * @description 用于配置白名单资源路径 + * @date 2018/11/5 + * @github https://github.com/macrozheng + */ +@Getter +@Setter +@Configuration +@ConfigurationProperties(prefix = "secure.ignored") +public class IgnoreUrlsConfig { + + private List urls = new ArrayList<>(); + +} diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java new file mode 100644 index 00000000..2830c98d --- /dev/null +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java @@ -0,0 +1,34 @@ +package com.macro.mall.tiny.config; + +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.service.UmsAdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +/** + * @auther macrozheng + * @description 自定义配置,用于配置如何获取用户信息 + * @date 2022/5/20 + * @github https://github.com/macrozheng + */ +@Configuration +public class MallSecurityConfig { + + @Autowired + private UmsAdminService adminService; + + @Bean + public UserDetailsService userDetailsService() { + //获取登录用户信息 + return username -> { + AdminUserDetails admin = adminService.getAdminByUsername(username); + if (admin != null) { + return admin; + } + throw new UsernameNotFoundException("用户名或密码错误"); + }; + } +} diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index f4584332..ec54365e 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,10 +4,12 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration -@MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) +@MapperScan("com.macro.mall.tiny.mbg.mapper") public class MyBatisConfig { } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/RedisConfig.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/RedisConfig.java new file mode 100644 index 00000000..c93b29ac --- /dev/null +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/RedisConfig.java @@ -0,0 +1,71 @@ +package com.macro.mall.tiny.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 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; + +/** + * @auther macrozheng + * @description Redis配置类 + * @date 2020/3/2 + * @github https://github.com/macrozheng + */ +@EnableCaching +@Configuration +public class RedisConfig { + + /** + * redis数据库自定义key + */ + public static final String REDIS_KEY_DATABASE="mall"; + + @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); + } + +} diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java index 94785e3f..70dd99ba 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java @@ -3,9 +3,7 @@ import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.dto.AdminUserDetails; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; import com.macro.mall.tiny.service.UmsAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -17,56 +15,50 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import java.util.List; - /** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description SpringSecurity的配置 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled=true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; +public class SecurityConfig { @Autowired private RestfulAccessDeniedHandler restfulAccessDeniedHandler; @Autowired private RestAuthenticationEntryPoint restAuthenticationEntryPoint; + @Autowired + private IgnoreUrlsConfig ignoreUrlsConfig; - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity + .authorizeRequests(); + //不需要保护的资源路径允许访问 + for (String url : ignoreUrlsConfig.getUrls()) { + registry.antMatchers(url).permitAll(); + } + //允许跨域请求的OPTIONS请求 + registry.antMatchers(HttpMethod.OPTIONS) + .permitAll(); httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf .disable() .sessionManagement()// 基于token,所以不需要session .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login", "/admin/register")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() -// .antMatchers("/**")//测试时全部运行访问 -// .permitAll() .anyRequest()// 除上面外的所有请求全部需要鉴权认证 .authenticated(); // 禁用缓存 @@ -77,12 +69,7 @@ protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.exceptionHandling() .accessDeniedHandler(restfulAccessDeniedHandler) .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); + return httpSecurity.build(); } @Bean @@ -90,28 +77,9 @@ public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - UmsAdmin admin = adminService.getAdminByUsername(username); - if (admin != null) { - List permissionList = adminService.getPermissionList(admin.getId()); - return new AdminUserDetails(admin,permissionList); - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - @Bean public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ return new JwtAuthenticationTokenFilter(); } - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 8946105a..930cac51 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,34 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; 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 springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置(带认证) + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) .paths(PathSelectors.any()) .build() @@ -41,14 +46,14 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } - private List securitySchemes() { + private List securitySchemes() { //设置请求头信息 - List result = new ArrayList<>(); + List result = new ArrayList<>(); ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); result.add(apiKey); return result; @@ -61,7 +66,7 @@ private List securityContexts() { return result; } - private SecurityContext getContextByPath(String pathRegex){ + private SecurityContext getContextByPath(String pathRegex) { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex(pathRegex)) @@ -76,4 +81,37 @@ private List defaultAuth() { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 0dee32a4..b75a2598 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +20,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired @@ -34,7 +38,7 @@ public class PmsBrandController { @ApiOperation("获取所有品牌列表") @RequestMapping(value = "listAll", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:listAll')") public CommonResult> getBrandList() { return CommonResult.success(brandService.listAllBrand()); } @@ -42,7 +46,7 @@ public CommonResult> getBrandList() { @ApiOperation("添加品牌") @RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:create')") + @PreAuthorize("hasAuthority('brand:create')") public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { CommonResult commonResult; int count = brandService.createBrand(pmsBrand); @@ -59,7 +63,7 @@ public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { @ApiOperation("更新指定id品牌信息") @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:update')") + @PreAuthorize("hasAuthority('brand:update')") public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { CommonResult commonResult; int count = brandService.updateBrand(id, pmsBrandDto); @@ -76,7 +80,7 @@ public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBra @ApiOperation("删除指定id的品牌") @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:delete')") + @PreAuthorize("hasAuthority('brand:delete')") public CommonResult deleteBrand(@PathVariable("id") Long id) { int count = brandService.deleteBrand(id); if (count == 1) { @@ -91,7 +95,7 @@ public CommonResult deleteBrand(@PathVariable("id") Long id) { @ApiOperation("分页查询品牌列表") @RequestMapping(value = "/list", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:list')") public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") @ApiParam("页码") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "3") @@ -103,7 +107,6 @@ public CommonResult> listBrand(@RequestParam(value = "pageN @ApiOperation("获取指定id的品牌详情") @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") public CommonResult brand(@PathVariable("id") Long id) { return CommonResult.success(brandService.getBrand(id)); } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index d95f9683..de2b21fc 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -1,28 +1,32 @@ package com.macro.mall.tiny.controller; import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.List; import java.util.Map; /** - * 后台用户管理 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { @Autowired @@ -32,22 +36,12 @@ public class UmsAdminController { @Value("${jwt.tokenHead}") private String tokenHead; - @ApiOperation(value = "用户注册") - @RequestMapping(value = "/register", method = RequestMethod.POST) - @ResponseBody - public CommonResult register(@RequestBody UmsAdmin umsAdminParam, BindingResult result) { - UmsAdmin umsAdmin = adminService.register(umsAdminParam); - if (umsAdmin == null) { - CommonResult.failed(); - } - return CommonResult.success(umsAdmin); - } @ApiOperation(value = "登录以后返回token") @RequestMapping(value = "/login", method = RequestMethod.POST) @ResponseBody - public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) { - String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword()); + public CommonResult login(@RequestParam String username, @RequestParam String password) { + String token = adminService.login(username, password); if (token == null) { return CommonResult.validateFailed("用户名或密码错误"); } @@ -57,11 +51,11 @@ public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, Bi return CommonResult.success(tokenMap); } - @ApiOperation("获取用户所有权限(包括+-权限)") - @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET) + @ApiOperation(value = "登录以后返回token") + @RequestMapping(value = "/resourceList", method = RequestMethod.POST) @ResponseBody - public CommonResult> getPermissionList(@PathVariable Long adminId) { - List permissionList = adminService.getPermissionList(adminId); - return CommonResult.success(permissionList); + public CommonResult> resourceList() { + List resourceList = adminService.getResourceList(); + return CommonResult.success(resourceList); } } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java index c936c689..5825367b 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.UmsMemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员登录注册管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") +@Api(tags = "UmsMemberController") +@Tag(name = "UmsMemberController", description = "会员登录注册管理") @RequestMapping("/sso") public class UmsMemberController { @Autowired diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java deleted file mode 100644 index 50f00f7c..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.dao; - - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 后台用户与角色管理自定义Dao - * Created by macro on 2018/10/8. - */ -public interface UmsAdminRoleRelationDao { - - /** - * 获取用户所有权限(包括+-权限) - */ - List getPermissionList(@Param("adminId") Long adminId); -} diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java new file mode 100644 index 00000000..c26f1b96 --- /dev/null +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java @@ -0,0 +1,61 @@ +package com.macro.mall.tiny.domain; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @auther macrozheng + * @description SpringSecurity用户信息封装类 + * @date 2020/10/15 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Builder +public class AdminUserDetails implements UserDetails { + private String username; + private String password; + private List authorityList; + @Override + public Collection getAuthorities() { + return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); + } + + @Override + public String getPassword() { + return this.password; + } + + @Override + public String getUsername() { + return this.username; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/domain/UmsResource.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/domain/UmsResource.java similarity index 100% rename from mall-tiny-security/src/main/java/com/macro/mall/tiny/domain/UmsResource.java rename to mall-tiny-04/src/main/java/com/macro/mall/tiny/domain/UmsResource.java diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java deleted file mode 100644 index bd712424..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * SpringSecurity需要的用户详情 - * Created by macro on 2018/4/26. - */ -public class AdminUserDetails implements UserDetails { - private UmsAdmin umsAdmin; - private List permissionList; - public AdminUserDetails(UmsAdmin umsAdmin, List permissionList) { - this.umsAdmin = umsAdmin; - this.permissionList = permissionList; - } - - @Override - public Collection getAuthorities() { - //返回当前用户的权限 - return permissionList.stream() - .filter(permission -> permission.getValue()!=null) - .map(permission ->new SimpleGrantedAuthority(permission.getValue())) - .collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return umsAdmin.getPassword(); - } - - @Override - public String getUsername() { - return umsAdmin.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return umsAdmin.getStatus().equals(1); - } -} diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java deleted file mode 100644 index 94e9396a..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.validator.constraints.NotEmpty; - -/** - * 用户登录参数 - * Created by macro on 2018/4/26. - */ -public class UmsAdminLoginParam { - @ApiModelProperty(value = "用户名", required = true) - @NotEmpty(message = "用户名不能为空") - private String username; - @ApiModelProperty(value = "密码", required = true) - @NotEmpty(message = "密码不能为空") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/RedisService.java index 191ab73b..370c456c 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/RedisService.java @@ -1,35 +1,184 @@ package com.macro.mall.tiny.service; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作Service + * @date 2020/3/3 + * @github https://github.com/macrozheng */ public interface RedisService { + + /** + * 保存属性 + */ + void set(String key, Object value, long time); + + /** + * 保存属性 + */ + void set(String key, Object value); + + /** + * 获取属性 + */ + Object get(String key); + + /** + * 删除属性 + */ + Boolean del(String key); + + /** + * 批量删除属性 + */ + Long del(List keys); + + /** + * 设置过期时间 + */ + Boolean expire(String key, long time); + + /** + * 获取过期时间 + */ + Long getExpire(String key); + + /** + * 判断是否有该属性 + */ + Boolean hasKey(String key); + + /** + * 按delta递增 + */ + Long incr(String key, long delta); + + /** + * 按delta递减 + */ + Long decr(String key, long delta); + + /** + * 获取Hash结构中的属性 + */ + Object hGet(String key, String hashKey); + + /** + * 向Hash结构中放入一个属性 + */ + Boolean hSet(String key, String hashKey, Object value, long time); + + /** + * 向Hash结构中放入一个属性 + */ + void hSet(String key, String hashKey, Object value); + + /** + * 直接获取整个Hash结构 + */ + Map hGetAll(String key); + /** - * 存储数据 + * 直接设置整个Hash结构 */ - void set(String key, String value); + Boolean hSetAll(String key, Map map, long time); /** - * 获取数据 + * 直接设置整个Hash结构 */ - String get(String key); + void hSetAll(String key, Map map); /** - * 设置超期时间 + * 删除Hash结构中的属性 */ - boolean expire(String key, long expire); + void hDel(String key, Object... hashKey); /** - * 删除数据 + * 判断Hash结构中是否有该属性 */ - void remove(String key); + Boolean hHasKey(String key, String hashKey); /** - * 自增操作 - * @param delta 自增步长 + * Hash结构中属性递增 */ - Long increment(String key, long delta); + Long hIncr(String key, String hashKey, Long delta); -} + /** + * Hash结构中属性递减 + */ + Long hDecr(String key, String hashKey, Long delta); + + /** + * 获取Set结构 + */ + Set sMembers(String key); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, Object... values); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, long time, Object... values); + + /** + * 是否为Set中的属性 + */ + Boolean sIsMember(String key, Object value); + + /** + * 获取Set结构的长度 + */ + Long sSize(String key); + + /** + * 删除Set结构中的属性 + */ + Long sRemove(String key, Object... values); + + /** + * 获取List结构中的属性 + */ + List lRange(String key, long start, long end); + + /** + * 获取List结构的长度 + */ + Long lSize(String key); + + /** + * 根据索引获取List中的属性 + */ + Object lIndex(String key, long index); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value, long time); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Object... values); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Long time, Object... values); + + /** + * 从List结构中移除属性 + */ + Long lRemove(String key, long count, Object value); +} \ No newline at end of file diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 08a9d539..5180e8e9 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -1,35 +1,29 @@ package com.macro.mall.tiny.service; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import java.util.List; /** - * 后台管理员Service - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service + * @date 2020/10/15 + * @github https://github.com/macrozheng */ public interface UmsAdminService { /** - * 根据用户名获取后台管理员 + * 根据用户名获取用户信息 */ - UmsAdmin getAdminByUsername(String username); + AdminUserDetails getAdminByUsername(String username); /** - * 注册功能 + * 获取所以权限列表 */ - UmsAdmin register(UmsAdmin umsAdminParam); + List getResourceList(); /** - * 登录功能 - * @param username 用户名 - * @param password 密码 - * @return 生成的JWT的token + * 用户名密码登录 */ String login(String username, String password); - - /** - * 获取用户所有权限(包括角色权限和+-权限) - */ - List getPermissionList(Long adminId); } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java index f9fd8ac9..8cf694d3 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.common.api.CommonResult; /** - * 会员管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface UmsMemberService { diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java index cb9d7e0c..8ff149fd 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java @@ -2,42 +2,200 @@ import com.macro.mall.tiny.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; /** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作实现类 + * @date 2020/3/3 + * @github https://github.com/macrozheng */ @Service public class RedisServiceImpl implements RedisService { @Autowired - private StringRedisTemplate stringRedisTemplate; + private RedisTemplate redisTemplate; @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); + public void set(String key, Object value, long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); + public void set(String key, Object value) { + redisTemplate.opsForValue().set(key, value); } @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); + public Object get(String key) { + return redisTemplate.opsForValue().get(key); } @Override - public void remove(String key) { - stringRedisTemplate.delete(key); + public Boolean del(String key) { + return redisTemplate.delete(key); } @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); + public Long del(List keys) { + return redisTemplate.delete(keys); + } + + @Override + public Boolean expire(String key, long time) { + return redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + + @Override + public Long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + @Override + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + @Override + public Long incr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, delta); + } + + @Override + public Long decr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, -delta); + } + + @Override + public Object hGet(String key, String hashKey) { + return redisTemplate.opsForHash().get(key, hashKey); + } + + @Override + public Boolean hSet(String key, String hashKey, Object value, long time) { + redisTemplate.opsForHash().put(key, hashKey, value); + return expire(key, time); + } + + @Override + public void hSet(String key, String hashKey, Object value) { + redisTemplate.opsForHash().put(key, hashKey, value); + } + + @Override + public Map hGetAll(String key) { + return redisTemplate.opsForHash().entries(key); + } + + @Override + public Boolean hSetAll(String key, Map map, long time) { + redisTemplate.opsForHash().putAll(key, map); + return expire(key, time); + } + + @Override + public void hSetAll(String key, Map map) { + redisTemplate.opsForHash().putAll(key, map); + } + + @Override + public void hDel(String key, Object... hashKey) { + redisTemplate.opsForHash().delete(key, hashKey); + } + + @Override + public Boolean hHasKey(String key, String hashKey) { + return redisTemplate.opsForHash().hasKey(key, hashKey); + } + + @Override + public Long hIncr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, delta); + } + + @Override + public Long hDecr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, -delta); + } + + @Override + public Set sMembers(String key) { + return redisTemplate.opsForSet().members(key); + } + + @Override + public Long sAdd(String key, Object... values) { + return redisTemplate.opsForSet().add(key, values); + } + + @Override + public Long sAdd(String key, long time, Object... values) { + Long count = redisTemplate.opsForSet().add(key, values); + expire(key, time); + return count; + } + + @Override + public Boolean sIsMember(String key, Object value) { + return redisTemplate.opsForSet().isMember(key, value); + } + + @Override + public Long sSize(String key) { + return redisTemplate.opsForSet().size(key); + } + + @Override + public Long sRemove(String key, Object... values) { + return redisTemplate.opsForSet().remove(key, values); + } + + @Override + public List lRange(String key, long start, long end) { + return redisTemplate.opsForList().range(key, start, end); + } + + @Override + public Long lSize(String key) { + return redisTemplate.opsForList().size(key); + } + + @Override + public Object lIndex(String key, long index) { + return redisTemplate.opsForList().index(key, index); + } + + @Override + public Long lPush(String key, Object value) { + return redisTemplate.opsForList().rightPush(key, value); + } + + @Override + public Long lPush(String key, Object value, long time) { + Long index = redisTemplate.opsForList().rightPush(key, value); + expire(key, time); + return index; + } + + @Override + public Long lPushAll(String key, Object... values) { + return redisTemplate.opsForList().rightPushAll(key, values); + } + + @Override + public Long lPushAll(String key, Long time, Object... values) { + Long count = redisTemplate.opsForList().rightPushAll(key, values); + expire(key, time); + return count; + } + + @Override + public Long lRemove(String key, long count, Object value) { + return redisTemplate.opsForList().remove(key, count, value); } } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 4f0a052d..2f3236e1 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -1,87 +1,107 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.collection.CollUtil; import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.dao.UmsAdminRoleRelationDao; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.mapper.UmsAdminMapper; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import java.util.Date; +import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * UmsAdminService实现类 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service实现类 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ +@Slf4j @Service public class UmsAdminServiceImpl implements UmsAdminService { - private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class); - @Autowired - private UserDetailsService userDetailsService; + /** + * 存放默认用户信息 + */ + private List adminUserDetailsList = new ArrayList<>(); + /** + * 存放默认资源信息 + */ + private List resourceList = new ArrayList<>(); @Autowired private JwtTokenUtil jwtTokenUtil; @Autowired private PasswordEncoder passwordEncoder; - @Value("${jwt.tokenHead}") - private String tokenHead; - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminRoleRelationDao adminRoleRelationDao; + @PostConstruct + private void init(){ + adminUserDetailsList.add(AdminUserDetails.builder() + .username("admin") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:create","brand:update","brand:delete","brand:list","brand:listAll")) + .build()); + adminUserDetailsList.add(AdminUserDetails.builder() + .username("macro") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:listAll")) + .build()); + resourceList.add(UmsResource.builder() + .id(1L) + .name("brand:create") + .url("/brand/create") + .build()); + resourceList.add(UmsResource.builder() + .id(2L) + .name("brand:update") + .url("/brand/update/**") + .build()); + resourceList.add(UmsResource.builder() + .id(3L) + .name("brand:delete") + .url("/brand/delete/**") + .build()); + resourceList.add(UmsResource.builder() + .id(4L) + .name("brand:list") + .url("/brand/list") + .build()); + resourceList.add(UmsResource.builder() + .id(5L) + .name("brand:listAll") + .url("/brand/listAll") + .build()); + } @Override - public UmsAdmin getAdminByUsername(String username) { - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(username); - List adminList = adminMapper.selectByExample(example); - if (adminList != null && adminList.size() > 0) { - return adminList.get(0); + public AdminUserDetails getAdminByUsername(String username) { + List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(findList)){ + return findList.get(0); } return null; } @Override - public UmsAdmin register(UmsAdmin umsAdminParam) { - UmsAdmin umsAdmin = new UmsAdmin(); - BeanUtils.copyProperties(umsAdminParam, umsAdmin); - umsAdmin.setCreateTime(new Date()); - umsAdmin.setStatus(1); - //查询是否有相同用户名的用户 - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername()); - List umsAdminList = adminMapper.selectByExample(example); - if (umsAdminList.size() > 0) { - return null; - } - //将密码进行加密操作 - String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); - umsAdmin.setPassword(encodePassword); - adminMapper.insert(umsAdmin); - return umsAdmin; + public List getResourceList() { + return resourceList; } @Override public String login(String username, String password) { String token = null; try { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UserDetails userDetails = getAdminByUsername(username); + if(userDetails==null){ + return token; + } if (!passwordEncoder.matches(password, userDetails.getPassword())) { throw new BadCredentialsException("密码不正确"); } @@ -89,14 +109,8 @@ public String login(String username, String password) { SecurityContextHolder.getContext().setAuthentication(authentication); token = jwtTokenUtil.generateToken(userDetails); } catch (AuthenticationException e) { - LOGGER.warn("登录异常:{}", e.getMessage()); + log.warn("登录异常:{}", e.getMessage()); } return token; } - - - @Override - public List getPermissionList(Long adminId) { - return adminRoleRelationDao.getPermissionList(adminId); - } } diff --git a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java index 06378693..6c6aeb7f 100644 --- a/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ b/mall-tiny-04/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.util.StrUtil; import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.service.RedisService; import com.macro.mall.tiny.service.UmsMemberService; @@ -11,8 +12,10 @@ import java.util.Random; /** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class UmsMemberServiceImpl implements UmsMemberService { @@ -40,10 +43,10 @@ public CommonResult generateAuthCode(String telephone) { //对输入的验证码进行校验 @Override public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { + if (StrUtil.isEmpty(authCode)) { return CommonResult.failed("请输入验证码"); } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); + String realAuthCode = (String) redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); boolean result = authCode.equals(realAuthCode); if (result) { return CommonResult.success(null, "验证码校验成功"); diff --git a/mall-tiny-04/src/main/resources/application.yml b/mall-tiny-04/src/main/resources/application.yml index 809192d5..14f64846 100644 --- a/mall-tiny-04/src/main/resources/application.yml +++ b/mall-tiny-04/src/main/resources/application.yml @@ -3,25 +3,27 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) - jedis: + lettuce: pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) + max-active: 8 # 连接池最大连接数 + max-idle: 8 # 连接池最大空闲连接数 + min-idle: 0 # 连接池最小空闲连接数 + max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制 mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml # 自定义redis key @@ -38,3 +40,18 @@ jwt: secret: mySecret #JWT加解密使用的密钥 expiration: 604800 #JWT的超期限时间(60*60*24) tokenHead: Bearer #JWT负载中拿到开头 + +secure: + ignored: + urls: #安全路径白名单 + - /swagger-ui/ + - /swagger-resources/** + - /**/v2/api-docs + - /**/*.html + - /**/*.js + - /**/*.css + - /**/*.png + - /favicon.ico + - /actuator/** + - /druid/** + - /admin/** \ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-04/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/generator.properties b/mall-tiny-04/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-04/src/main/resources/generator.properties +++ b/mall-tiny-04/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/generatorConfig.xml b/mall-tiny-04/src/main/resources/generatorConfig.xml index 843f970c..65eda248 100644 --- a/mall-tiny-04/src/main/resources/generatorConfig.xml +++ b/mall-tiny-04/src/main/resources/generatorConfig.xml @@ -6,59 +6,45 @@ + + + + + - + + + - + - + - + - + - +
- - - -
- - - -
- - - -
- - -
- - -
- - -
\ No newline at end of file diff --git a/mall-tiny-04/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny-04/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny-04/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny-04/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-04/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-04/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-04/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-05/pom.xml b/mall-tiny-05/pom.xml index baec03b3..d75ace33 100644 --- a/mall-tiny-05/pom.xml +++ b/mall-tiny-05/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-05 - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-05 Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,38 +37,45 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} - + org.springframework.boot spring-boot-starter-data-redis @@ -82,17 +85,16 @@ org.springframework.boot spring-boot-starter-security - - - cn.hutool - hutool-all - 4.5.7 - io.jsonwebtoken jjwt - 0.9.0 + ${jjwt.version} + + + + org.springframework.boot + spring-boot-starter-data-elasticsearch diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..a5f04b7d 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -1,12 +1,15 @@ package com.macro.mall.tiny.common.api; import com.github.pagehelper.PageInfo; +import org.springframework.data.domain.Page; import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; @@ -29,6 +32,19 @@ public static CommonPage restPage(List list) { return result; } + /** + * 将SpringData分页后的list转为分页信息 + */ + public static CommonPage restPage(Page pageInfo) { + CommonPage result = new CommonPage(); + result.setTotalPage(pageInfo.getTotalPages()); + result.setPageNum(pageInfo.getNumber()); + result.setPageSize(pageInfo.getSize()); + result.setTotal(pageInfo.getTotalElements()); + result.setList(pageInfo.getContent()); + return result; + } + public Integer getPageNum() { return pageNum; } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java index 5ec26f6c..89e32146 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java @@ -14,7 +14,8 @@ import java.util.Map; /** - * JwtToken生成的工具类 + * @auther macrozheng + * @description JwtToken生成的工具类 * JWT token的格式:header.payload.signature * header的格式(算法、token的类型): * {"alg": "HS512","typ": "JWT"} @@ -22,7 +23,8 @@ * {"sub":"wang","created":1489079981393,"exp":1489684781} * signature的生成算法: * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class JwtTokenUtil { @@ -35,7 +37,7 @@ public class JwtTokenUtil { private Long expiration; /** - * 根据负责生成JWT的token + * 根据负载生成JWT的token */ private String generateToken(Map claims) { return Jwts.builder() diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java index abdb7b71..65cc9fcb 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java @@ -19,8 +19,10 @@ import java.io.IOException; /** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description JWT登录授权过滤器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java deleted file mode 100644 index 678406da..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.component; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -/** - * Created by macro on 2018/8/24. - * 订单超时取消并解锁库存的定时器 - */ -@Component -public class OrderTimeOutCancelTask { - private Logger LOGGER = LoggerFactory.getLogger(OrderTimeOutCancelTask.class); - - /** - * cron表达式:Seconds Minutes Hours DayofMonth Month DayofWeek [Year] - * 每10分钟扫描一次,扫描设定超时时间之前下的订单,如果没支付则取消该订单 - */ - @Scheduled(cron = "0 0/10 * ? * ?") - private void cancelTimeOutOrder() { - // TODO: 2019/5/3 此处应调用取消订单的方法,具体查看mall项目源码 - LOGGER.info("取消订单,并根据sku编号释放锁定库存"); - } -} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java index 757df36c..1445038f 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. + * @auther macrozheng + * @description 当未登录或者token失效访问接口时,自定义的返回结果 + * @date 2018/5/14 + * @github https://github.com/macrozheng */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java index bc201cce..769dbfc3 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 当访问接口没有权限时,自定义的返回结果 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java new file mode 100644 index 00000000..21fa1f30 --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java @@ -0,0 +1,25 @@ +package com.macro.mall.tiny.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @auther macrozheng + * @description 用于配置白名单资源路径 + * @date 2018/11/5 + * @github https://github.com/macrozheng + */ +@Getter +@Setter +@Configuration +@ConfigurationProperties(prefix = "secure.ignored") +public class IgnoreUrlsConfig { + + private List urls = new ArrayList<>(); + +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java new file mode 100644 index 00000000..2830c98d --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java @@ -0,0 +1,34 @@ +package com.macro.mall.tiny.config; + +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.service.UmsAdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +/** + * @auther macrozheng + * @description 自定义配置,用于配置如何获取用户信息 + * @date 2022/5/20 + * @github https://github.com/macrozheng + */ +@Configuration +public class MallSecurityConfig { + + @Autowired + private UmsAdminService adminService; + + @Bean + public UserDetailsService userDetailsService() { + //获取登录用户信息 + return username -> { + AdminUserDetails admin = adminService.getAdminByUsername(username); + if (admin != null) { + return admin; + } + throw new UsernameNotFoundException("用户名或密码错误"); + }; + } +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index f4584332..ad775947 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/RedisConfig.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/RedisConfig.java new file mode 100644 index 00000000..c93b29ac --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/RedisConfig.java @@ -0,0 +1,71 @@ +package com.macro.mall.tiny.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 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; + +/** + * @auther macrozheng + * @description Redis配置类 + * @date 2020/3/2 + * @github https://github.com/macrozheng + */ +@EnableCaching +@Configuration +public class RedisConfig { + + /** + * redis数据库自定义key + */ + public static final String REDIS_KEY_DATABASE="mall"; + + @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); + } + +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java index 94785e3f..70dd99ba 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java @@ -3,9 +3,7 @@ import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.dto.AdminUserDetails; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; import com.macro.mall.tiny.service.UmsAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -17,56 +15,50 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import java.util.List; - /** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description SpringSecurity的配置 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled=true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; +public class SecurityConfig { @Autowired private RestfulAccessDeniedHandler restfulAccessDeniedHandler; @Autowired private RestAuthenticationEntryPoint restAuthenticationEntryPoint; + @Autowired + private IgnoreUrlsConfig ignoreUrlsConfig; - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity + .authorizeRequests(); + //不需要保护的资源路径允许访问 + for (String url : ignoreUrlsConfig.getUrls()) { + registry.antMatchers(url).permitAll(); + } + //允许跨域请求的OPTIONS请求 + registry.antMatchers(HttpMethod.OPTIONS) + .permitAll(); httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf .disable() .sessionManagement()// 基于token,所以不需要session .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login", "/admin/register")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() -// .antMatchers("/**")//测试时全部运行访问 -// .permitAll() .anyRequest()// 除上面外的所有请求全部需要鉴权认证 .authenticated(); // 禁用缓存 @@ -77,12 +69,7 @@ protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.exceptionHandling() .accessDeniedHandler(restfulAccessDeniedHandler) .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); + return httpSecurity.build(); } @Bean @@ -90,28 +77,9 @@ public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - UmsAdmin admin = adminService.getAdminByUsername(username); - if (admin != null) { - List permissionList = adminService.getPermissionList(admin.getId()); - return new AdminUserDetails(admin,permissionList); - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - @Bean public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ return new JwtAuthenticationTokenFilter(); } - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java deleted file mode 100644 index 54c5f4f8..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; - -/** - * 定时任务配置 - * Created by macro on 2019/4/8. - */ -@Configuration -@EnableScheduling -public class SpringTaskConfig { -} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 8946105a..930cac51 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,34 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; 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 springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置(带认证) + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) .paths(PathSelectors.any()) .build() @@ -41,14 +46,14 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } - private List securitySchemes() { + private List securitySchemes() { //设置请求头信息 - List result = new ArrayList<>(); + List result = new ArrayList<>(); ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); result.add(apiKey); return result; @@ -61,7 +66,7 @@ private List securityContexts() { return result; } - private SecurityContext getContextByPath(String pathRegex){ + private SecurityContext getContextByPath(String pathRegex) { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex(pathRegex)) @@ -76,4 +81,37 @@ private List defaultAuth() { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/EsProductController.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/EsProductController.java new file mode 100644 index 00000000..7e318e78 --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/EsProductController.java @@ -0,0 +1,76 @@ +package com.macro.mall.tiny.controller; + +import com.macro.mall.tiny.common.api.CommonPage; +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; +import com.macro.mall.tiny.service.EsProductService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @auther macrozheng + * @description 搜索商品管理Controller + * @date 2018/6/19 + * @github https://github.com/macrozheng + */ +@Controller +@Api(tags = "EsProductController") +@Tag(name = "EsProductController", description = "搜索商品管理") +@RequestMapping("/esProduct") +public class EsProductController { + @Autowired + private EsProductService esProductService; + + @ApiOperation(value = "导入所有数据库中商品到ES") + @RequestMapping(value = "/importAll", method = RequestMethod.POST) + @ResponseBody + public CommonResult importAllList() { + int count = esProductService.importAll(); + return CommonResult.success(count); + } + + @ApiOperation(value = "根据id删除商品") + @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) + @ResponseBody + public CommonResult delete(@PathVariable Long id) { + esProductService.delete(id); + return CommonResult.success(null); + } + + @ApiOperation(value = "根据id批量删除商品") + @RequestMapping(value = "/delete/batch", method = RequestMethod.POST) + @ResponseBody + public CommonResult delete(@RequestParam("ids") List ids) { + esProductService.delete(ids); + return CommonResult.success(null); + } + + @ApiOperation(value = "根据id创建商品") + @RequestMapping(value = "/create/{id}", method = RequestMethod.POST) + @ResponseBody + public CommonResult create(@PathVariable Long id) { + EsProduct esProduct = esProductService.create(id); + if (esProduct != null) { + return CommonResult.success(esProduct); + } else { + return CommonResult.failed(); + } + } + + @ApiOperation(value = "简单搜索") + @RequestMapping(value = "/search/simple", method = RequestMethod.GET) + @ResponseBody + public CommonResult> search(@RequestParam(required = false) String keyword, + @RequestParam(required = false, defaultValue = "0") Integer pageNum, + @RequestParam(required = false, defaultValue = "5") Integer pageSize) { + Page esProductPage = esProductService.search(keyword, pageNum, pageSize); + return CommonResult.success(CommonPage.restPage(esProductPage)); + } +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 0dee32a4..b75a2598 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +20,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired @@ -34,7 +38,7 @@ public class PmsBrandController { @ApiOperation("获取所有品牌列表") @RequestMapping(value = "listAll", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:listAll')") public CommonResult> getBrandList() { return CommonResult.success(brandService.listAllBrand()); } @@ -42,7 +46,7 @@ public CommonResult> getBrandList() { @ApiOperation("添加品牌") @RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:create')") + @PreAuthorize("hasAuthority('brand:create')") public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { CommonResult commonResult; int count = brandService.createBrand(pmsBrand); @@ -59,7 +63,7 @@ public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { @ApiOperation("更新指定id品牌信息") @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:update')") + @PreAuthorize("hasAuthority('brand:update')") public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { CommonResult commonResult; int count = brandService.updateBrand(id, pmsBrandDto); @@ -76,7 +80,7 @@ public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBra @ApiOperation("删除指定id的品牌") @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:delete')") + @PreAuthorize("hasAuthority('brand:delete')") public CommonResult deleteBrand(@PathVariable("id") Long id) { int count = brandService.deleteBrand(id); if (count == 1) { @@ -91,7 +95,7 @@ public CommonResult deleteBrand(@PathVariable("id") Long id) { @ApiOperation("分页查询品牌列表") @RequestMapping(value = "/list", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:list')") public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") @ApiParam("页码") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "3") @@ -103,7 +107,6 @@ public CommonResult> listBrand(@RequestParam(value = "pageN @ApiOperation("获取指定id的品牌详情") @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") public CommonResult brand(@PathVariable("id") Long id) { return CommonResult.success(brandService.getBrand(id)); } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index d95f9683..de2b21fc 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -1,28 +1,32 @@ package com.macro.mall.tiny.controller; import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.List; import java.util.Map; /** - * 后台用户管理 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { @Autowired @@ -32,22 +36,12 @@ public class UmsAdminController { @Value("${jwt.tokenHead}") private String tokenHead; - @ApiOperation(value = "用户注册") - @RequestMapping(value = "/register", method = RequestMethod.POST) - @ResponseBody - public CommonResult register(@RequestBody UmsAdmin umsAdminParam, BindingResult result) { - UmsAdmin umsAdmin = adminService.register(umsAdminParam); - if (umsAdmin == null) { - CommonResult.failed(); - } - return CommonResult.success(umsAdmin); - } @ApiOperation(value = "登录以后返回token") @RequestMapping(value = "/login", method = RequestMethod.POST) @ResponseBody - public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) { - String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword()); + public CommonResult login(@RequestParam String username, @RequestParam String password) { + String token = adminService.login(username, password); if (token == null) { return CommonResult.validateFailed("用户名或密码错误"); } @@ -57,11 +51,11 @@ public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, Bi return CommonResult.success(tokenMap); } - @ApiOperation("获取用户所有权限(包括+-权限)") - @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET) + @ApiOperation(value = "登录以后返回token") + @RequestMapping(value = "/resourceList", method = RequestMethod.POST) @ResponseBody - public CommonResult> getPermissionList(@PathVariable Long adminId) { - List permissionList = adminService.getPermissionList(adminId); - return CommonResult.success(permissionList); + public CommonResult> resourceList() { + List resourceList = adminService.getResourceList(); + return CommonResult.success(resourceList); } } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java index c936c689..5825367b 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.UmsMemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员登录注册管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") +@Api(tags = "UmsMemberController") +@Tag(name = "UmsMemberController", description = "会员登录注册管理") @RequestMapping("/sso") public class UmsMemberController { @Autowired diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java new file mode 100644 index 00000000..d2a58a41 --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java @@ -0,0 +1,16 @@ +package com.macro.mall.tiny.dao; + +import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @auther macrozheng + * @description 搜索系统中的商品管理自定义Dao + * @date 2018/6/19 + * @github https://github.com/macrozheng + */ +public interface EsProductDao { + List getAllEsProductList(@Param("id") Long id); +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java deleted file mode 100644 index 50f00f7c..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.dao; - - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 后台用户与角色管理自定义Dao - * Created by macro on 2018/10/8. - */ -public interface UmsAdminRoleRelationDao { - - /** - * 获取用户所有权限(包括+-权限) - */ - List getPermissionList(@Param("adminId") Long adminId); -} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java new file mode 100644 index 00000000..c26f1b96 --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java @@ -0,0 +1,61 @@ +package com.macro.mall.tiny.domain; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @auther macrozheng + * @description SpringSecurity用户信息封装类 + * @date 2020/10/15 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Builder +public class AdminUserDetails implements UserDetails { + private String username; + private String password; + private List authorityList; + @Override + public Collection getAuthorities() { + return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); + } + + @Override + public String getPassword() { + return this.password; + } + + @Override + public String getUsername() { + return this.username; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/domain/UmsResource.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/domain/UmsResource.java new file mode 100644 index 00000000..baf9890d --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/domain/UmsResource.java @@ -0,0 +1,42 @@ +package com.macro.mall.tiny.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + *

+ * 后台资源表 + *

+ * + * @author macro + * @since 2020-08-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="UmsResource对象", description="后台资源表") +@Builder +public class UmsResource{ + + private Long id; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "资源名称") + private String name; + + @ApiModelProperty(value = "资源URL") + private String url; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "资源分类ID") + private Long categoryId; + +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java deleted file mode 100644 index bd712424..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * SpringSecurity需要的用户详情 - * Created by macro on 2018/4/26. - */ -public class AdminUserDetails implements UserDetails { - private UmsAdmin umsAdmin; - private List permissionList; - public AdminUserDetails(UmsAdmin umsAdmin, List permissionList) { - this.umsAdmin = umsAdmin; - this.permissionList = permissionList; - } - - @Override - public Collection getAuthorities() { - //返回当前用户的权限 - return permissionList.stream() - .filter(permission -> permission.getValue()!=null) - .map(permission ->new SimpleGrantedAuthority(permission.getValue())) - .collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return umsAdmin.getPassword(); - } - - @Override - public String getUsername() { - return umsAdmin.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return umsAdmin.getStatus().equals(1); - } -} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java deleted file mode 100644 index 94e9396a..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.validator.constraints.NotEmpty; - -/** - * 用户登录参数 - * Created by macro on 2018/4/26. - */ -public class UmsAdminLoginParam { - @ApiModelProperty(value = "用户名", required = true) - @NotEmpty(message = "用户名不能为空") - private String username; - @ApiModelProperty(value = "密码", required = true) - @NotEmpty(message = "密码不能为空") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java new file mode 100644 index 00000000..88ad394b --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java @@ -0,0 +1,53 @@ +package com.macro.mall.tiny.nosql.elasticsearch.document; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.data.annotation.Id; +import org.springframework.data.elasticsearch.annotations.Document; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; +import org.springframework.data.elasticsearch.annotations.Setting; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * @auther macrozheng + * @description 搜索商品的信息 + * @date 2018/6/19 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode +@Document(indexName = "pms") +@Setting(shards = 1,replicas = 0) +public class EsProduct implements Serializable { + private static final long serialVersionUID = -1L; + @Id + private Long id; + @Field(type = FieldType.Keyword) + private String productSn; + private Long brandId; + @Field(type = FieldType.Keyword) + private String brandName; + private Long productCategoryId; + @Field(type = FieldType.Keyword) + private String productCategoryName; + private String pic; + @Field(analyzer = "ik_max_word",type = FieldType.Text) + private String name; + @Field(analyzer = "ik_max_word",type = FieldType.Text) + private String subTitle; + @Field(analyzer = "ik_max_word",type = FieldType.Text) + private String keywords; + private BigDecimal price; + private Integer sale; + private Integer newStatus; + private Integer recommandStatus; + private Integer stock; + private Integer promotionType; + private Integer sort; + @Field(type =FieldType.Nested) + private List attrValueList; +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java new file mode 100644 index 00000000..ab95faa6 --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java @@ -0,0 +1,30 @@ +package com.macro.mall.tiny.nosql.elasticsearch.document; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; + +import java.io.Serializable; + +/** + * @auther macrozheng + * @description 搜索商品的属性信息 + * @date 2018/6/27 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode +public class EsProductAttributeValue implements Serializable { + private static final long serialVersionUID = 1L; + private Long id; + private Long productAttributeId; + //属性值 + @Field(type = FieldType.Keyword) + private String value; + //属性参数:0->规格;1->参数 + private Integer type; + //属性名称 + @Field(type=FieldType.Keyword) + private String name; +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java new file mode 100644 index 00000000..21430576 --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java @@ -0,0 +1,26 @@ +package com.macro.mall.tiny.nosql.elasticsearch.repository; + +import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; + +/** + * @auther macrozheng + * @description 商品ES操作类 + * @date 2018/6/19 + * @github https://github.com/macrozheng + */ +public interface EsProductRepository extends ElasticsearchRepository { + /** + * 搜索查询 + * + * @param name 商品名称 + * @param subTitle 商品标题 + * @param keywords 商品关键字 + * @param page 分页信息 + * @return + */ + Page findByNameOrSubTitleOrKeywords(String name, String subTitle, String keywords, Pageable page); + +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/EsProductService.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/EsProductService.java new file mode 100644 index 00000000..ebb9e313 --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/EsProductService.java @@ -0,0 +1,40 @@ +package com.macro.mall.tiny.service; + +import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; +import org.springframework.data.domain.Page; + +import java.util.List; + +/** + * @auther macrozheng + * @description 商品搜索管理Service + * @date 2018/6/19 + * @github https://github.com/macrozheng + */ +public interface EsProductService { + /** + * 从数据库中导入所有商品到ES + */ + int importAll(); + + /** + * 根据id删除商品 + */ + void delete(Long id); + + /** + * 根据id创建商品 + */ + EsProduct create(Long id); + + /** + * 批量删除商品 + */ + void delete(List ids); + + /** + * 根据关键字搜索名称或者副标题 + */ + Page search(String keyword, Integer pageNum, Integer pageSize); + +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/RedisService.java index 191ab73b..370c456c 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/RedisService.java @@ -1,35 +1,184 @@ package com.macro.mall.tiny.service; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作Service + * @date 2020/3/3 + * @github https://github.com/macrozheng */ public interface RedisService { + + /** + * 保存属性 + */ + void set(String key, Object value, long time); + + /** + * 保存属性 + */ + void set(String key, Object value); + + /** + * 获取属性 + */ + Object get(String key); + + /** + * 删除属性 + */ + Boolean del(String key); + + /** + * 批量删除属性 + */ + Long del(List keys); + + /** + * 设置过期时间 + */ + Boolean expire(String key, long time); + + /** + * 获取过期时间 + */ + Long getExpire(String key); + + /** + * 判断是否有该属性 + */ + Boolean hasKey(String key); + + /** + * 按delta递增 + */ + Long incr(String key, long delta); + + /** + * 按delta递减 + */ + Long decr(String key, long delta); + + /** + * 获取Hash结构中的属性 + */ + Object hGet(String key, String hashKey); + + /** + * 向Hash结构中放入一个属性 + */ + Boolean hSet(String key, String hashKey, Object value, long time); + + /** + * 向Hash结构中放入一个属性 + */ + void hSet(String key, String hashKey, Object value); + + /** + * 直接获取整个Hash结构 + */ + Map hGetAll(String key); + /** - * 存储数据 + * 直接设置整个Hash结构 */ - void set(String key, String value); + Boolean hSetAll(String key, Map map, long time); /** - * 获取数据 + * 直接设置整个Hash结构 */ - String get(String key); + void hSetAll(String key, Map map); /** - * 设置超期时间 + * 删除Hash结构中的属性 */ - boolean expire(String key, long expire); + void hDel(String key, Object... hashKey); /** - * 删除数据 + * 判断Hash结构中是否有该属性 */ - void remove(String key); + Boolean hHasKey(String key, String hashKey); /** - * 自增操作 - * @param delta 自增步长 + * Hash结构中属性递增 */ - Long increment(String key, long delta); + Long hIncr(String key, String hashKey, Long delta); -} + /** + * Hash结构中属性递减 + */ + Long hDecr(String key, String hashKey, Long delta); + + /** + * 获取Set结构 + */ + Set sMembers(String key); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, Object... values); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, long time, Object... values); + + /** + * 是否为Set中的属性 + */ + Boolean sIsMember(String key, Object value); + + /** + * 获取Set结构的长度 + */ + Long sSize(String key); + + /** + * 删除Set结构中的属性 + */ + Long sRemove(String key, Object... values); + + /** + * 获取List结构中的属性 + */ + List lRange(String key, long start, long end); + + /** + * 获取List结构的长度 + */ + Long lSize(String key); + + /** + * 根据索引获取List中的属性 + */ + Object lIndex(String key, long index); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value, long time); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Object... values); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Long time, Object... values); + + /** + * 从List结构中移除属性 + */ + Long lRemove(String key, long count, Object value); +} \ No newline at end of file diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 08a9d539..5180e8e9 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -1,35 +1,29 @@ package com.macro.mall.tiny.service; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import java.util.List; /** - * 后台管理员Service - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service + * @date 2020/10/15 + * @github https://github.com/macrozheng */ public interface UmsAdminService { /** - * 根据用户名获取后台管理员 + * 根据用户名获取用户信息 */ - UmsAdmin getAdminByUsername(String username); + AdminUserDetails getAdminByUsername(String username); /** - * 注册功能 + * 获取所以权限列表 */ - UmsAdmin register(UmsAdmin umsAdminParam); + List getResourceList(); /** - * 登录功能 - * @param username 用户名 - * @param password 密码 - * @return 生成的JWT的token + * 用户名密码登录 */ String login(String username, String password); - - /** - * 获取用户所有权限(包括角色权限和+-权限) - */ - List getPermissionList(Long adminId); } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java index f9fd8ac9..8cf694d3 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.common.api.CommonResult; /** - * 会员管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface UmsMemberService { diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java new file mode 100644 index 00000000..98891874 --- /dev/null +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java @@ -0,0 +1,82 @@ +package com.macro.mall.tiny.service.impl; + +import com.macro.mall.tiny.dao.EsProductDao; +import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; +import com.macro.mall.tiny.nosql.elasticsearch.repository.EsProductRepository; +import com.macro.mall.tiny.service.EsProductService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + + +/** + * @auther macrozheng + * @description 搜索商品管理Service实现类 + * @date 2018/6/19 + * @github https://github.com/macrozheng + */ +@Service +public class EsProductServiceImpl implements EsProductService { + private static final Logger LOGGER = LoggerFactory.getLogger(EsProductServiceImpl.class); + @Autowired + private EsProductDao productDao; + @Autowired + private EsProductRepository productRepository; + @Override + public int importAll() { + List esProductList = productDao.getAllEsProductList(null); + Iterable esProductIterable = productRepository.saveAll(esProductList); + Iterator iterator = esProductIterable.iterator(); + int result = 0; + while (iterator.hasNext()) { + result++; + iterator.next(); + } + return result; + } + + @Override + public void delete(Long id) { + productRepository.deleteById(id); + } + + @Override + public EsProduct create(Long id) { + EsProduct result = null; + List esProductList = productDao.getAllEsProductList(id); + if (esProductList.size() > 0) { + EsProduct esProduct = esProductList.get(0); + result = productRepository.save(esProduct); + } + return result; + } + + @Override + public void delete(List ids) { + if (!CollectionUtils.isEmpty(ids)) { + List esProductList = new ArrayList<>(); + for (Long id : ids) { + EsProduct esProduct = new EsProduct(); + esProduct.setId(id); + esProductList.add(esProduct); + } + productRepository.deleteAll(esProductList); + } + } + + @Override + public Page search(String keyword, Integer pageNum, Integer pageSize) { + Pageable pageable = PageRequest.of(pageNum, pageSize); + return productRepository.findByNameOrSubTitleOrKeywords(keyword, keyword, keyword, pageable); + } + +} diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java index cb9d7e0c..8ff149fd 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java @@ -2,42 +2,200 @@ import com.macro.mall.tiny.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; /** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作实现类 + * @date 2020/3/3 + * @github https://github.com/macrozheng */ @Service public class RedisServiceImpl implements RedisService { @Autowired - private StringRedisTemplate stringRedisTemplate; + private RedisTemplate redisTemplate; @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); + public void set(String key, Object value, long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); + public void set(String key, Object value) { + redisTemplate.opsForValue().set(key, value); } @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); + public Object get(String key) { + return redisTemplate.opsForValue().get(key); } @Override - public void remove(String key) { - stringRedisTemplate.delete(key); + public Boolean del(String key) { + return redisTemplate.delete(key); } @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); + public Long del(List keys) { + return redisTemplate.delete(keys); + } + + @Override + public Boolean expire(String key, long time) { + return redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + + @Override + public Long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + @Override + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + @Override + public Long incr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, delta); + } + + @Override + public Long decr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, -delta); + } + + @Override + public Object hGet(String key, String hashKey) { + return redisTemplate.opsForHash().get(key, hashKey); + } + + @Override + public Boolean hSet(String key, String hashKey, Object value, long time) { + redisTemplate.opsForHash().put(key, hashKey, value); + return expire(key, time); + } + + @Override + public void hSet(String key, String hashKey, Object value) { + redisTemplate.opsForHash().put(key, hashKey, value); + } + + @Override + public Map hGetAll(String key) { + return redisTemplate.opsForHash().entries(key); + } + + @Override + public Boolean hSetAll(String key, Map map, long time) { + redisTemplate.opsForHash().putAll(key, map); + return expire(key, time); + } + + @Override + public void hSetAll(String key, Map map) { + redisTemplate.opsForHash().putAll(key, map); + } + + @Override + public void hDel(String key, Object... hashKey) { + redisTemplate.opsForHash().delete(key, hashKey); + } + + @Override + public Boolean hHasKey(String key, String hashKey) { + return redisTemplate.opsForHash().hasKey(key, hashKey); + } + + @Override + public Long hIncr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, delta); + } + + @Override + public Long hDecr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, -delta); + } + + @Override + public Set sMembers(String key) { + return redisTemplate.opsForSet().members(key); + } + + @Override + public Long sAdd(String key, Object... values) { + return redisTemplate.opsForSet().add(key, values); + } + + @Override + public Long sAdd(String key, long time, Object... values) { + Long count = redisTemplate.opsForSet().add(key, values); + expire(key, time); + return count; + } + + @Override + public Boolean sIsMember(String key, Object value) { + return redisTemplate.opsForSet().isMember(key, value); + } + + @Override + public Long sSize(String key) { + return redisTemplate.opsForSet().size(key); + } + + @Override + public Long sRemove(String key, Object... values) { + return redisTemplate.opsForSet().remove(key, values); + } + + @Override + public List lRange(String key, long start, long end) { + return redisTemplate.opsForList().range(key, start, end); + } + + @Override + public Long lSize(String key) { + return redisTemplate.opsForList().size(key); + } + + @Override + public Object lIndex(String key, long index) { + return redisTemplate.opsForList().index(key, index); + } + + @Override + public Long lPush(String key, Object value) { + return redisTemplate.opsForList().rightPush(key, value); + } + + @Override + public Long lPush(String key, Object value, long time) { + Long index = redisTemplate.opsForList().rightPush(key, value); + expire(key, time); + return index; + } + + @Override + public Long lPushAll(String key, Object... values) { + return redisTemplate.opsForList().rightPushAll(key, values); + } + + @Override + public Long lPushAll(String key, Long time, Object... values) { + Long count = redisTemplate.opsForList().rightPushAll(key, values); + expire(key, time); + return count; + } + + @Override + public Long lRemove(String key, long count, Object value) { + return redisTemplate.opsForList().remove(key, count, value); } } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 4f0a052d..2f3236e1 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -1,87 +1,107 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.collection.CollUtil; import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.dao.UmsAdminRoleRelationDao; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.mapper.UmsAdminMapper; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import java.util.Date; +import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * UmsAdminService实现类 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service实现类 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ +@Slf4j @Service public class UmsAdminServiceImpl implements UmsAdminService { - private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class); - @Autowired - private UserDetailsService userDetailsService; + /** + * 存放默认用户信息 + */ + private List adminUserDetailsList = new ArrayList<>(); + /** + * 存放默认资源信息 + */ + private List resourceList = new ArrayList<>(); @Autowired private JwtTokenUtil jwtTokenUtil; @Autowired private PasswordEncoder passwordEncoder; - @Value("${jwt.tokenHead}") - private String tokenHead; - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminRoleRelationDao adminRoleRelationDao; + @PostConstruct + private void init(){ + adminUserDetailsList.add(AdminUserDetails.builder() + .username("admin") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:create","brand:update","brand:delete","brand:list","brand:listAll")) + .build()); + adminUserDetailsList.add(AdminUserDetails.builder() + .username("macro") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:listAll")) + .build()); + resourceList.add(UmsResource.builder() + .id(1L) + .name("brand:create") + .url("/brand/create") + .build()); + resourceList.add(UmsResource.builder() + .id(2L) + .name("brand:update") + .url("/brand/update/**") + .build()); + resourceList.add(UmsResource.builder() + .id(3L) + .name("brand:delete") + .url("/brand/delete/**") + .build()); + resourceList.add(UmsResource.builder() + .id(4L) + .name("brand:list") + .url("/brand/list") + .build()); + resourceList.add(UmsResource.builder() + .id(5L) + .name("brand:listAll") + .url("/brand/listAll") + .build()); + } @Override - public UmsAdmin getAdminByUsername(String username) { - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(username); - List adminList = adminMapper.selectByExample(example); - if (adminList != null && adminList.size() > 0) { - return adminList.get(0); + public AdminUserDetails getAdminByUsername(String username) { + List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(findList)){ + return findList.get(0); } return null; } @Override - public UmsAdmin register(UmsAdmin umsAdminParam) { - UmsAdmin umsAdmin = new UmsAdmin(); - BeanUtils.copyProperties(umsAdminParam, umsAdmin); - umsAdmin.setCreateTime(new Date()); - umsAdmin.setStatus(1); - //查询是否有相同用户名的用户 - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername()); - List umsAdminList = adminMapper.selectByExample(example); - if (umsAdminList.size() > 0) { - return null; - } - //将密码进行加密操作 - String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); - umsAdmin.setPassword(encodePassword); - adminMapper.insert(umsAdmin); - return umsAdmin; + public List getResourceList() { + return resourceList; } @Override public String login(String username, String password) { String token = null; try { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UserDetails userDetails = getAdminByUsername(username); + if(userDetails==null){ + return token; + } if (!passwordEncoder.matches(password, userDetails.getPassword())) { throw new BadCredentialsException("密码不正确"); } @@ -89,14 +109,8 @@ public String login(String username, String password) { SecurityContextHolder.getContext().setAuthentication(authentication); token = jwtTokenUtil.generateToken(userDetails); } catch (AuthenticationException e) { - LOGGER.warn("登录异常:{}", e.getMessage()); + log.warn("登录异常:{}", e.getMessage()); } return token; } - - - @Override - public List getPermissionList(Long adminId) { - return adminRoleRelationDao.getPermissionList(adminId); - } } diff --git a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java index 06378693..6c6aeb7f 100644 --- a/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ b/mall-tiny-05/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.util.StrUtil; import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.service.RedisService; import com.macro.mall.tiny.service.UmsMemberService; @@ -11,8 +12,10 @@ import java.util.Random; /** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class UmsMemberServiceImpl implements UmsMemberService { @@ -40,10 +43,10 @@ public CommonResult generateAuthCode(String telephone) { //对输入的验证码进行校验 @Override public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { + if (StrUtil.isEmpty(authCode)) { return CommonResult.failed("请输入验证码"); } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); + String realAuthCode = (String) redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); boolean result = authCode.equals(realAuthCode); if (result) { return CommonResult.success(null, "验证码校验成功"); diff --git a/mall-tiny-05/src/main/resources/application.yml b/mall-tiny-05/src/main/resources/application.yml index 809192d5..3801f703 100644 --- a/mall-tiny-05/src/main/resources/application.yml +++ b/mall-tiny-05/src/main/resources/application.yml @@ -3,25 +3,33 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) - jedis: + lettuce: pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) + max-active: 8 # 连接池最大连接数 + max-idle: 8 # 连接池最大空闲连接数 + min-idle: 0 # 连接池最小空闲连接数 + max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制 + data: + elasticsearch: + repositories: + enabled: true # 开启ES仓库配置,自动为仓库接口生成实现类 + elasticsearch: + uris: http://localhost:9200 # ES的连接地址及端口号 mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml # 自定义redis key @@ -38,3 +46,19 @@ jwt: secret: mySecret #JWT加解密使用的密钥 expiration: 604800 #JWT的超期限时间(60*60*24) tokenHead: Bearer #JWT负载中拿到开头 + +secure: + ignored: + urls: #安全路径白名单 + - /swagger-ui/ + - /swagger-resources/** + - /**/v2/api-docs + - /**/*.html + - /**/*.js + - /**/*.css + - /**/*.png + - /favicon.ico + - /actuator/** + - /druid/** + - /admin/** + - /esProduct/** \ No newline at end of file diff --git a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-05/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/mapper/EsProductDao.xml b/mall-tiny-05/src/main/resources/dao/EsProductDao.xml similarity index 100% rename from mall-tiny-06/src/main/resources/mapper/EsProductDao.xml rename to mall-tiny-05/src/main/resources/dao/EsProductDao.xml diff --git a/mall-tiny-05/src/main/resources/generator.properties b/mall-tiny-05/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-05/src/main/resources/generator.properties +++ b/mall-tiny-05/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-05/src/main/resources/generatorConfig.xml b/mall-tiny-05/src/main/resources/generatorConfig.xml index a0439412..96412262 100644 --- a/mall-tiny-05/src/main/resources/generatorConfig.xml +++ b/mall-tiny-05/src/main/resources/generatorConfig.xml @@ -6,59 +6,45 @@ + + + + + - + + + - + - + - + - + - +
- - - -
- - - -
- - - -
- - -
- - -
- - -
\ No newline at end of file diff --git a/mall-tiny-05/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny-05/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny-05/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny-05/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-05/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-05/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-05/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-06/pom.xml b/mall-tiny-06/pom.xml index 0c1567f9..0a62158a 100644 --- a/mall-tiny-06/pom.xml +++ b/mall-tiny-06/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-06 - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-06 Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,38 +37,45 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} - + org.springframework.boot spring-boot-starter-data-redis @@ -82,23 +85,22 @@ org.springframework.boot spring-boot-starter-security - - - cn.hutool - hutool-all - 4.5.7 - io.jsonwebtoken jjwt - 0.9.0 + ${jjwt.version} org.springframework.boot spring-boot-starter-data-elasticsearch + + + org.springframework.boot + spring-boot-starter-data-mongodb + diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index cd91d663..a5f04b7d 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java index 5ec26f6c..89e32146 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java @@ -14,7 +14,8 @@ import java.util.Map; /** - * JwtToken生成的工具类 + * @auther macrozheng + * @description JwtToken生成的工具类 * JWT token的格式:header.payload.signature * header的格式(算法、token的类型): * {"alg": "HS512","typ": "JWT"} @@ -22,7 +23,8 @@ * {"sub":"wang","created":1489079981393,"exp":1489684781} * signature的生成算法: * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class JwtTokenUtil { @@ -35,7 +37,7 @@ public class JwtTokenUtil { private Long expiration; /** - * 根据负责生成JWT的token + * 根据负载生成JWT的token */ private String generateToken(Map claims) { return Jwts.builder() diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java index abdb7b71..65cc9fcb 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java @@ -19,8 +19,10 @@ import java.io.IOException; /** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description JWT登录授权过滤器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java deleted file mode 100644 index 678406da..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.component; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -/** - * Created by macro on 2018/8/24. - * 订单超时取消并解锁库存的定时器 - */ -@Component -public class OrderTimeOutCancelTask { - private Logger LOGGER = LoggerFactory.getLogger(OrderTimeOutCancelTask.class); - - /** - * cron表达式:Seconds Minutes Hours DayofMonth Month DayofWeek [Year] - * 每10分钟扫描一次,扫描设定超时时间之前下的订单,如果没支付则取消该订单 - */ - @Scheduled(cron = "0 0/10 * ? * ?") - private void cancelTimeOutOrder() { - // TODO: 2019/5/3 此处应调用取消订单的方法,具体查看mall项目源码 - LOGGER.info("取消订单,并根据sku编号释放锁定库存"); - } -} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java index 757df36c..1445038f 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. + * @auther macrozheng + * @description 当未登录或者token失效访问接口时,自定义的返回结果 + * @date 2018/5/14 + * @github https://github.com/macrozheng */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java index bc201cce..769dbfc3 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 当访问接口没有权限时,自定义的返回结果 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java new file mode 100644 index 00000000..21fa1f30 --- /dev/null +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java @@ -0,0 +1,25 @@ +package com.macro.mall.tiny.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @auther macrozheng + * @description 用于配置白名单资源路径 + * @date 2018/11/5 + * @github https://github.com/macrozheng + */ +@Getter +@Setter +@Configuration +@ConfigurationProperties(prefix = "secure.ignored") +public class IgnoreUrlsConfig { + + private List urls = new ArrayList<>(); + +} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java new file mode 100644 index 00000000..2830c98d --- /dev/null +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java @@ -0,0 +1,34 @@ +package com.macro.mall.tiny.config; + +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.service.UmsAdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +/** + * @auther macrozheng + * @description 自定义配置,用于配置如何获取用户信息 + * @date 2022/5/20 + * @github https://github.com/macrozheng + */ +@Configuration +public class MallSecurityConfig { + + @Autowired + private UmsAdminService adminService; + + @Bean + public UserDetailsService userDetailsService() { + //获取登录用户信息 + return username -> { + AdminUserDetails admin = adminService.getAdminByUsername(username); + if (admin != null) { + return admin; + } + throw new UsernameNotFoundException("用户名或密码错误"); + }; + } +} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index f4584332..ad775947 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/RedisConfig.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/RedisConfig.java new file mode 100644 index 00000000..c93b29ac --- /dev/null +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/RedisConfig.java @@ -0,0 +1,71 @@ +package com.macro.mall.tiny.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 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; + +/** + * @auther macrozheng + * @description Redis配置类 + * @date 2020/3/2 + * @github https://github.com/macrozheng + */ +@EnableCaching +@Configuration +public class RedisConfig { + + /** + * redis数据库自定义key + */ + public static final String REDIS_KEY_DATABASE="mall"; + + @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); + } + +} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java index d4a67661..70dd99ba 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java @@ -3,9 +3,7 @@ import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.dto.AdminUserDetails; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; import com.macro.mall.tiny.service.UmsAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -17,58 +15,50 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import java.util.List; - /** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description SpringSecurity的配置 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled=true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; +public class SecurityConfig { @Autowired private RestfulAccessDeniedHandler restfulAccessDeniedHandler; @Autowired private RestAuthenticationEntryPoint restAuthenticationEntryPoint; + @Autowired + private IgnoreUrlsConfig ignoreUrlsConfig; - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity + .authorizeRequests(); + //不需要保护的资源路径允许访问 + for (String url : ignoreUrlsConfig.getUrls()) { + registry.antMatchers(url).permitAll(); + } + //允许跨域请求的OPTIONS请求 + registry.antMatchers(HttpMethod.OPTIONS) + .permitAll(); httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf .disable() .sessionManagement()// 基于token,所以不需要session .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login", "/admin/register")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers("/esProduct/**")// 搜索模块暂时运行匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() -// .antMatchers("/**")//测试时全部运行访问 -// .permitAll() .anyRequest()// 除上面外的所有请求全部需要鉴权认证 .authenticated(); // 禁用缓存 @@ -79,12 +69,7 @@ protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.exceptionHandling() .accessDeniedHandler(restfulAccessDeniedHandler) .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); + return httpSecurity.build(); } @Bean @@ -92,28 +77,9 @@ public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - UmsAdmin admin = adminService.getAdminByUsername(username); - if (admin != null) { - List permissionList = adminService.getPermissionList(admin.getId()); - return new AdminUserDetails(admin,permissionList); - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - @Bean public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ return new JwtAuthenticationTokenFilter(); } - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java deleted file mode 100644 index 54c5f4f8..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; - -/** - * 定时任务配置 - * Created by macro on 2019/4/8. - */ -@Configuration -@EnableScheduling -public class SpringTaskConfig { -} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 8946105a..930cac51 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,34 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; 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 springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置(带认证) + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) .paths(PathSelectors.any()) .build() @@ -41,14 +46,14 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } - private List securitySchemes() { + private List securitySchemes() { //设置请求头信息 - List result = new ArrayList<>(); + List result = new ArrayList<>(); ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); result.add(apiKey); return result; @@ -61,7 +66,7 @@ private List securityContexts() { return result; } - private SecurityContext getContextByPath(String pathRegex){ + private SecurityContext getContextByPath(String pathRegex) { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex(pathRegex)) @@ -76,4 +81,37 @@ private List defaultAuth() { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/EsProductController.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/EsProductController.java index 5ea0b066..7e318e78 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/EsProductController.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/EsProductController.java @@ -6,6 +6,7 @@ import com.macro.mall.tiny.service.EsProductService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.stereotype.Controller; @@ -14,11 +15,14 @@ import java.util.List; /** - * 搜索商品管理Controller - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品管理Controller + * @date 2018/6/19 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "EsProductController", description = "搜索商品管理") +@Api(tags = "EsProductController") +@Tag(name = "EsProductController", description = "搜索商品管理") @RequestMapping("/esProduct") public class EsProductController { @Autowired @@ -69,5 +73,4 @@ public CommonResult> search(@RequestParam(required = false Page esProductPage = esProductService.search(keyword, pageNum, pageSize); return CommonResult.success(CommonPage.restPage(esProductPage)); } - } diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java similarity index 86% rename from mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java rename to mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java index 12b060aa..77e6727e 100644 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java @@ -5,6 +5,7 @@ import com.macro.mall.tiny.service.MemberReadHistoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -12,11 +13,14 @@ import java.util.List; /** - * 会员商品浏览记录管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员商品浏览记录管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "MemberReadHistoryController", description = "会员商品浏览记录管理") +@Api(tags = "MemberReadHistoryController") +@Tag(name = "MemberReadHistoryController", description = "会员商品浏览记录管理") @RequestMapping("/member/readHistory") public class MemberReadHistoryController { @Autowired diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 0dee32a4..b75a2598 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +20,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired @@ -34,7 +38,7 @@ public class PmsBrandController { @ApiOperation("获取所有品牌列表") @RequestMapping(value = "listAll", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:listAll')") public CommonResult> getBrandList() { return CommonResult.success(brandService.listAllBrand()); } @@ -42,7 +46,7 @@ public CommonResult> getBrandList() { @ApiOperation("添加品牌") @RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:create')") + @PreAuthorize("hasAuthority('brand:create')") public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { CommonResult commonResult; int count = brandService.createBrand(pmsBrand); @@ -59,7 +63,7 @@ public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { @ApiOperation("更新指定id品牌信息") @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:update')") + @PreAuthorize("hasAuthority('brand:update')") public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { CommonResult commonResult; int count = brandService.updateBrand(id, pmsBrandDto); @@ -76,7 +80,7 @@ public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBra @ApiOperation("删除指定id的品牌") @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:delete')") + @PreAuthorize("hasAuthority('brand:delete')") public CommonResult deleteBrand(@PathVariable("id") Long id) { int count = brandService.deleteBrand(id); if (count == 1) { @@ -91,7 +95,7 @@ public CommonResult deleteBrand(@PathVariable("id") Long id) { @ApiOperation("分页查询品牌列表") @RequestMapping(value = "/list", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:list')") public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") @ApiParam("页码") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "3") @@ -103,7 +107,6 @@ public CommonResult> listBrand(@RequestParam(value = "pageN @ApiOperation("获取指定id的品牌详情") @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") public CommonResult brand(@PathVariable("id") Long id) { return CommonResult.success(brandService.getBrand(id)); } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index d95f9683..de2b21fc 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -1,28 +1,32 @@ package com.macro.mall.tiny.controller; import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.List; import java.util.Map; /** - * 后台用户管理 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { @Autowired @@ -32,22 +36,12 @@ public class UmsAdminController { @Value("${jwt.tokenHead}") private String tokenHead; - @ApiOperation(value = "用户注册") - @RequestMapping(value = "/register", method = RequestMethod.POST) - @ResponseBody - public CommonResult register(@RequestBody UmsAdmin umsAdminParam, BindingResult result) { - UmsAdmin umsAdmin = adminService.register(umsAdminParam); - if (umsAdmin == null) { - CommonResult.failed(); - } - return CommonResult.success(umsAdmin); - } @ApiOperation(value = "登录以后返回token") @RequestMapping(value = "/login", method = RequestMethod.POST) @ResponseBody - public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) { - String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword()); + public CommonResult login(@RequestParam String username, @RequestParam String password) { + String token = adminService.login(username, password); if (token == null) { return CommonResult.validateFailed("用户名或密码错误"); } @@ -57,11 +51,11 @@ public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, Bi return CommonResult.success(tokenMap); } - @ApiOperation("获取用户所有权限(包括+-权限)") - @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET) + @ApiOperation(value = "登录以后返回token") + @RequestMapping(value = "/resourceList", method = RequestMethod.POST) @ResponseBody - public CommonResult> getPermissionList(@PathVariable Long adminId) { - List permissionList = adminService.getPermissionList(adminId); - return CommonResult.success(permissionList); + public CommonResult> resourceList() { + List resourceList = adminService.getResourceList(); + return CommonResult.success(resourceList); } } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java index c936c689..5825367b 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.UmsMemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员登录注册管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") +@Api(tags = "UmsMemberController") +@Tag(name = "UmsMemberController", description = "会员登录注册管理") @RequestMapping("/sso") public class UmsMemberController { @Autowired diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java index 7a9a94e2..d2a58a41 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 搜索系统中的商品管理自定义Dao - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索系统中的商品管理自定义Dao + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductDao { List getAllEsProductList(@Param("id") Long id); diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java deleted file mode 100644 index 50f00f7c..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.dao; - - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 后台用户与角色管理自定义Dao - * Created by macro on 2018/10/8. - */ -public interface UmsAdminRoleRelationDao { - - /** - * 获取用户所有权限(包括+-权限) - */ - List getPermissionList(@Param("adminId") Long adminId); -} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java new file mode 100644 index 00000000..c26f1b96 --- /dev/null +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java @@ -0,0 +1,61 @@ +package com.macro.mall.tiny.domain; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @auther macrozheng + * @description SpringSecurity用户信息封装类 + * @date 2020/10/15 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Builder +public class AdminUserDetails implements UserDetails { + private String username; + private String password; + private List authorityList; + @Override + public Collection getAuthorities() { + return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); + } + + @Override + public String getPassword() { + return this.password; + } + + @Override + public String getUsername() { + return this.username; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/domain/UmsResource.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/domain/UmsResource.java new file mode 100644 index 00000000..baf9890d --- /dev/null +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/domain/UmsResource.java @@ -0,0 +1,42 @@ +package com.macro.mall.tiny.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + *

+ * 后台资源表 + *

+ * + * @author macro + * @since 2020-08-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="UmsResource对象", description="后台资源表") +@Builder +public class UmsResource{ + + private Long id; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "资源名称") + private String name; + + @ApiModelProperty(value = "资源URL") + private String url; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "资源分类ID") + private Long categoryId; + +} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java deleted file mode 100644 index bd712424..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * SpringSecurity需要的用户详情 - * Created by macro on 2018/4/26. - */ -public class AdminUserDetails implements UserDetails { - private UmsAdmin umsAdmin; - private List permissionList; - public AdminUserDetails(UmsAdmin umsAdmin, List permissionList) { - this.umsAdmin = umsAdmin; - this.permissionList = permissionList; - } - - @Override - public Collection getAuthorities() { - //返回当前用户的权限 - return permissionList.stream() - .filter(permission -> permission.getValue()!=null) - .map(permission ->new SimpleGrantedAuthority(permission.getValue())) - .collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return umsAdmin.getPassword(); - } - - @Override - public String getUsername() { - return umsAdmin.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return umsAdmin.getStatus().equals(1); - } -} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java deleted file mode 100644 index 94e9396a..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.validator.constraints.NotEmpty; - -/** - * 用户登录参数 - * Created by macro on 2018/4/26. - */ -public class UmsAdminLoginParam { - @ApiModelProperty(value = "用户名", required = true) - @NotEmpty(message = "用户名不能为空") - private String username; - @ApiModelProperty(value = "密码", required = true) - @NotEmpty(message = "密码不能为空") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java index 3a8e6839..88ad394b 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java @@ -1,19 +1,27 @@ package com.macro.mall.tiny.nosql.elasticsearch.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; +import org.springframework.data.elasticsearch.annotations.Setting; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; /** - * 搜索中的商品信息 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品的信息 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ -@Document(indexName = "pms", type = "product",shards = 1,replicas = 0) +@Data +@EqualsAndHashCode +@Document(indexName = "pms") +@Setting(shards = 1,replicas = 0) public class EsProduct implements Serializable { private static final long serialVersionUID = -1L; @Id @@ -42,148 +50,4 @@ public class EsProduct implements Serializable { private Integer sort; @Field(type =FieldType.Nested) private List attrValueList; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getProductSn() { - return productSn; - } - - public void setProductSn(String productSn) { - this.productSn = productSn; - } - - public Long getBrandId() { - return brandId; - } - - public void setBrandId(Long brandId) { - this.brandId = brandId; - } - - public String getBrandName() { - return brandName; - } - - public void setBrandName(String brandName) { - this.brandName = brandName; - } - - public Long getProductCategoryId() { - return productCategoryId; - } - - public void setProductCategoryId(Long productCategoryId) { - this.productCategoryId = productCategoryId; - } - - public String getProductCategoryName() { - return productCategoryName; - } - - public void setProductCategoryName(String productCategoryName) { - this.productCategoryName = productCategoryName; - } - - public String getPic() { - return pic; - } - - public void setPic(String pic) { - this.pic = pic; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSubTitle() { - return subTitle; - } - - public void setSubTitle(String subTitle) { - this.subTitle = subTitle; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public Integer getSale() { - return sale; - } - - public void setSale(Integer sale) { - this.sale = sale; - } - - public Integer getNewStatus() { - return newStatus; - } - - public void setNewStatus(Integer newStatus) { - this.newStatus = newStatus; - } - - public Integer getRecommandStatus() { - return recommandStatus; - } - - public void setRecommandStatus(Integer recommandStatus) { - this.recommandStatus = recommandStatus; - } - - public Integer getStock() { - return stock; - } - - public void setStock(Integer stock) { - this.stock = stock; - } - - public Integer getPromotionType() { - return promotionType; - } - - public void setPromotionType(Integer promotionType) { - this.promotionType = promotionType; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public List getAttrValueList() { - return attrValueList; - } - - public void setAttrValueList(List attrValueList) { - this.attrValueList = attrValueList; - } - - public String getKeywords() { - return keywords; - } - - public void setKeywords(String keywords) { - this.keywords = keywords; - } } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java index 676f6e23..ab95faa6 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java @@ -1,14 +1,20 @@ package com.macro.mall.tiny.nosql.elasticsearch.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; import java.io.Serializable; /** - * 搜索中的商品属性信息 - * Created by macro on 2018/6/27. + * @auther macrozheng + * @description 搜索商品的属性信息 + * @date 2018/6/27 + * @github https://github.com/macrozheng */ +@Data +@EqualsAndHashCode public class EsProductAttributeValue implements Serializable { private static final long serialVersionUID = 1L; private Long id; @@ -21,43 +27,4 @@ public class EsProductAttributeValue implements Serializable { //属性名称 @Field(type=FieldType.Keyword) private String name; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getProductAttributeId() { - return productAttributeId; - } - - public void setProductAttributeId(Long productAttributeId) { - this.productAttributeId = productAttributeId; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java index d874dd7f..21430576 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java @@ -6,8 +6,10 @@ import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; /** - * 商品ES操作类 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 商品ES操作类 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductRepository extends ElasticsearchRepository { /** diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java new file mode 100644 index 00000000..4b9c99f6 --- /dev/null +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java @@ -0,0 +1,34 @@ +package com.macro.mall.tiny.nosql.mongodb.document; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.index.Indexed; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +/** + * @auther macrozheng + * @description 用户商品浏览历史记录 + * @date 2018/8/3 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode +@Document +public class MemberReadHistory { + @Id + private String id; + @Indexed + private Long memberId; + private String memberNickname; + private String memberIcon; + @Indexed + private Long productId; + private String productName; + private String productPic; + private String productSubTitle; + private String productPrice; + private Date createTime; +} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java similarity index 79% rename from mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java rename to mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java index 10424bc2..229e10e8 100644 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java @@ -7,8 +7,10 @@ import java.util.List; /** - * 会员商品浏览历史Repository - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员商品浏览历史Repository + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface MemberReadHistoryRepository extends MongoRepository { /** diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/EsProductService.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/EsProductService.java index f2c15434..ebb9e313 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/EsProductService.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/EsProductService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 商品搜索管理Service - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 商品搜索管理Service + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductService { /** diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java similarity index 78% rename from mall-tiny-09/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java rename to mall-tiny-06/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java index b81903b5..45159dc7 100644 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 会员浏览记录管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员浏览记录管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface MemberReadHistoryService { /** diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/RedisService.java index 191ab73b..370c456c 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/RedisService.java @@ -1,35 +1,184 @@ package com.macro.mall.tiny.service; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作Service + * @date 2020/3/3 + * @github https://github.com/macrozheng */ public interface RedisService { + + /** + * 保存属性 + */ + void set(String key, Object value, long time); + + /** + * 保存属性 + */ + void set(String key, Object value); + + /** + * 获取属性 + */ + Object get(String key); + + /** + * 删除属性 + */ + Boolean del(String key); + + /** + * 批量删除属性 + */ + Long del(List keys); + + /** + * 设置过期时间 + */ + Boolean expire(String key, long time); + + /** + * 获取过期时间 + */ + Long getExpire(String key); + + /** + * 判断是否有该属性 + */ + Boolean hasKey(String key); + + /** + * 按delta递增 + */ + Long incr(String key, long delta); + + /** + * 按delta递减 + */ + Long decr(String key, long delta); + + /** + * 获取Hash结构中的属性 + */ + Object hGet(String key, String hashKey); + + /** + * 向Hash结构中放入一个属性 + */ + Boolean hSet(String key, String hashKey, Object value, long time); + + /** + * 向Hash结构中放入一个属性 + */ + void hSet(String key, String hashKey, Object value); + + /** + * 直接获取整个Hash结构 + */ + Map hGetAll(String key); + /** - * 存储数据 + * 直接设置整个Hash结构 */ - void set(String key, String value); + Boolean hSetAll(String key, Map map, long time); /** - * 获取数据 + * 直接设置整个Hash结构 */ - String get(String key); + void hSetAll(String key, Map map); /** - * 设置超期时间 + * 删除Hash结构中的属性 */ - boolean expire(String key, long expire); + void hDel(String key, Object... hashKey); /** - * 删除数据 + * 判断Hash结构中是否有该属性 */ - void remove(String key); + Boolean hHasKey(String key, String hashKey); /** - * 自增操作 - * @param delta 自增步长 + * Hash结构中属性递增 */ - Long increment(String key, long delta); + Long hIncr(String key, String hashKey, Long delta); -} + /** + * Hash结构中属性递减 + */ + Long hDecr(String key, String hashKey, Long delta); + + /** + * 获取Set结构 + */ + Set sMembers(String key); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, Object... values); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, long time, Object... values); + + /** + * 是否为Set中的属性 + */ + Boolean sIsMember(String key, Object value); + + /** + * 获取Set结构的长度 + */ + Long sSize(String key); + + /** + * 删除Set结构中的属性 + */ + Long sRemove(String key, Object... values); + + /** + * 获取List结构中的属性 + */ + List lRange(String key, long start, long end); + + /** + * 获取List结构的长度 + */ + Long lSize(String key); + + /** + * 根据索引获取List中的属性 + */ + Object lIndex(String key, long index); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value, long time); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Object... values); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Long time, Object... values); + + /** + * 从List结构中移除属性 + */ + Long lRemove(String key, long count, Object value); +} \ No newline at end of file diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 08a9d539..5180e8e9 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -1,35 +1,29 @@ package com.macro.mall.tiny.service; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import java.util.List; /** - * 后台管理员Service - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service + * @date 2020/10/15 + * @github https://github.com/macrozheng */ public interface UmsAdminService { /** - * 根据用户名获取后台管理员 + * 根据用户名获取用户信息 */ - UmsAdmin getAdminByUsername(String username); + AdminUserDetails getAdminByUsername(String username); /** - * 注册功能 + * 获取所以权限列表 */ - UmsAdmin register(UmsAdmin umsAdminParam); + List getResourceList(); /** - * 登录功能 - * @param username 用户名 - * @param password 密码 - * @return 生成的JWT的token + * 用户名密码登录 */ String login(String username, String password); - - /** - * 获取用户所有权限(包括角色权限和+-权限) - */ - List getPermissionList(Long adminId); } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java index f9fd8ac9..8cf694d3 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.common.api.CommonResult; /** - * 会员管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface UmsMemberService { diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java index 44939caa..98891874 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java @@ -19,8 +19,10 @@ /** - * 商品搜索管理Service实现类 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品管理Service实现类 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ @Service public class EsProductServiceImpl implements EsProductService { @@ -29,7 +31,6 @@ public class EsProductServiceImpl implements EsProductService { private EsProductDao productDao; @Autowired private EsProductRepository productRepository; - @Override public int importAll() { List esProductList = productDao.getAllEsProductList(null); diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java similarity index 91% rename from mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java rename to mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java index 977a331e..1dba57c7 100644 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * 会员浏览记录管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员浏览记录管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class MemberReadHistoryServiceImpl implements MemberReadHistoryService { diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java index cb9d7e0c..8ff149fd 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java @@ -2,42 +2,200 @@ import com.macro.mall.tiny.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; /** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作实现类 + * @date 2020/3/3 + * @github https://github.com/macrozheng */ @Service public class RedisServiceImpl implements RedisService { @Autowired - private StringRedisTemplate stringRedisTemplate; + private RedisTemplate redisTemplate; @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); + public void set(String key, Object value, long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); + public void set(String key, Object value) { + redisTemplate.opsForValue().set(key, value); } @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); + public Object get(String key) { + return redisTemplate.opsForValue().get(key); } @Override - public void remove(String key) { - stringRedisTemplate.delete(key); + public Boolean del(String key) { + return redisTemplate.delete(key); } @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); + public Long del(List keys) { + return redisTemplate.delete(keys); + } + + @Override + public Boolean expire(String key, long time) { + return redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + + @Override + public Long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + @Override + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + @Override + public Long incr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, delta); + } + + @Override + public Long decr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, -delta); + } + + @Override + public Object hGet(String key, String hashKey) { + return redisTemplate.opsForHash().get(key, hashKey); + } + + @Override + public Boolean hSet(String key, String hashKey, Object value, long time) { + redisTemplate.opsForHash().put(key, hashKey, value); + return expire(key, time); + } + + @Override + public void hSet(String key, String hashKey, Object value) { + redisTemplate.opsForHash().put(key, hashKey, value); + } + + @Override + public Map hGetAll(String key) { + return redisTemplate.opsForHash().entries(key); + } + + @Override + public Boolean hSetAll(String key, Map map, long time) { + redisTemplate.opsForHash().putAll(key, map); + return expire(key, time); + } + + @Override + public void hSetAll(String key, Map map) { + redisTemplate.opsForHash().putAll(key, map); + } + + @Override + public void hDel(String key, Object... hashKey) { + redisTemplate.opsForHash().delete(key, hashKey); + } + + @Override + public Boolean hHasKey(String key, String hashKey) { + return redisTemplate.opsForHash().hasKey(key, hashKey); + } + + @Override + public Long hIncr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, delta); + } + + @Override + public Long hDecr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, -delta); + } + + @Override + public Set sMembers(String key) { + return redisTemplate.opsForSet().members(key); + } + + @Override + public Long sAdd(String key, Object... values) { + return redisTemplate.opsForSet().add(key, values); + } + + @Override + public Long sAdd(String key, long time, Object... values) { + Long count = redisTemplate.opsForSet().add(key, values); + expire(key, time); + return count; + } + + @Override + public Boolean sIsMember(String key, Object value) { + return redisTemplate.opsForSet().isMember(key, value); + } + + @Override + public Long sSize(String key) { + return redisTemplate.opsForSet().size(key); + } + + @Override + public Long sRemove(String key, Object... values) { + return redisTemplate.opsForSet().remove(key, values); + } + + @Override + public List lRange(String key, long start, long end) { + return redisTemplate.opsForList().range(key, start, end); + } + + @Override + public Long lSize(String key) { + return redisTemplate.opsForList().size(key); + } + + @Override + public Object lIndex(String key, long index) { + return redisTemplate.opsForList().index(key, index); + } + + @Override + public Long lPush(String key, Object value) { + return redisTemplate.opsForList().rightPush(key, value); + } + + @Override + public Long lPush(String key, Object value, long time) { + Long index = redisTemplate.opsForList().rightPush(key, value); + expire(key, time); + return index; + } + + @Override + public Long lPushAll(String key, Object... values) { + return redisTemplate.opsForList().rightPushAll(key, values); + } + + @Override + public Long lPushAll(String key, Long time, Object... values) { + Long count = redisTemplate.opsForList().rightPushAll(key, values); + expire(key, time); + return count; + } + + @Override + public Long lRemove(String key, long count, Object value) { + return redisTemplate.opsForList().remove(key, count, value); } } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 4f0a052d..2f3236e1 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -1,87 +1,107 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.collection.CollUtil; import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.dao.UmsAdminRoleRelationDao; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.mapper.UmsAdminMapper; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import java.util.Date; +import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * UmsAdminService实现类 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service实现类 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ +@Slf4j @Service public class UmsAdminServiceImpl implements UmsAdminService { - private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class); - @Autowired - private UserDetailsService userDetailsService; + /** + * 存放默认用户信息 + */ + private List adminUserDetailsList = new ArrayList<>(); + /** + * 存放默认资源信息 + */ + private List resourceList = new ArrayList<>(); @Autowired private JwtTokenUtil jwtTokenUtil; @Autowired private PasswordEncoder passwordEncoder; - @Value("${jwt.tokenHead}") - private String tokenHead; - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminRoleRelationDao adminRoleRelationDao; + @PostConstruct + private void init(){ + adminUserDetailsList.add(AdminUserDetails.builder() + .username("admin") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:create","brand:update","brand:delete","brand:list","brand:listAll")) + .build()); + adminUserDetailsList.add(AdminUserDetails.builder() + .username("macro") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:listAll")) + .build()); + resourceList.add(UmsResource.builder() + .id(1L) + .name("brand:create") + .url("/brand/create") + .build()); + resourceList.add(UmsResource.builder() + .id(2L) + .name("brand:update") + .url("/brand/update/**") + .build()); + resourceList.add(UmsResource.builder() + .id(3L) + .name("brand:delete") + .url("/brand/delete/**") + .build()); + resourceList.add(UmsResource.builder() + .id(4L) + .name("brand:list") + .url("/brand/list") + .build()); + resourceList.add(UmsResource.builder() + .id(5L) + .name("brand:listAll") + .url("/brand/listAll") + .build()); + } @Override - public UmsAdmin getAdminByUsername(String username) { - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(username); - List adminList = adminMapper.selectByExample(example); - if (adminList != null && adminList.size() > 0) { - return adminList.get(0); + public AdminUserDetails getAdminByUsername(String username) { + List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(findList)){ + return findList.get(0); } return null; } @Override - public UmsAdmin register(UmsAdmin umsAdminParam) { - UmsAdmin umsAdmin = new UmsAdmin(); - BeanUtils.copyProperties(umsAdminParam, umsAdmin); - umsAdmin.setCreateTime(new Date()); - umsAdmin.setStatus(1); - //查询是否有相同用户名的用户 - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername()); - List umsAdminList = adminMapper.selectByExample(example); - if (umsAdminList.size() > 0) { - return null; - } - //将密码进行加密操作 - String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); - umsAdmin.setPassword(encodePassword); - adminMapper.insert(umsAdmin); - return umsAdmin; + public List getResourceList() { + return resourceList; } @Override public String login(String username, String password) { String token = null; try { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UserDetails userDetails = getAdminByUsername(username); + if(userDetails==null){ + return token; + } if (!passwordEncoder.matches(password, userDetails.getPassword())) { throw new BadCredentialsException("密码不正确"); } @@ -89,14 +109,8 @@ public String login(String username, String password) { SecurityContextHolder.getContext().setAuthentication(authentication); token = jwtTokenUtil.generateToken(userDetails); } catch (AuthenticationException e) { - LOGGER.warn("登录异常:{}", e.getMessage()); + log.warn("登录异常:{}", e.getMessage()); } return token; } - - - @Override - public List getPermissionList(Long adminId) { - return adminRoleRelationDao.getPermissionList(adminId); - } } diff --git a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java index 06378693..6c6aeb7f 100644 --- a/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ b/mall-tiny-06/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.util.StrUtil; import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.service.RedisService; import com.macro.mall.tiny.service.UmsMemberService; @@ -11,8 +12,10 @@ import java.util.Random; /** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class UmsMemberServiceImpl implements UmsMemberService { @@ -40,10 +43,10 @@ public CommonResult generateAuthCode(String telephone) { //对输入的验证码进行校验 @Override public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { + if (StrUtil.isEmpty(authCode)) { return CommonResult.failed("请输入验证码"); } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); + String realAuthCode = (String) redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); boolean result = authCode.equals(realAuthCode); if (result) { return CommonResult.success(null, "验证码校验成功"); diff --git a/mall-tiny-06/src/main/resources/application.yml b/mall-tiny-06/src/main/resources/application.yml index 40018f2e..0fc67804 100644 --- a/mall-tiny-06/src/main/resources/application.yml +++ b/mall-tiny-06/src/main/resources/application.yml @@ -3,31 +3,37 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) - jedis: + lettuce: pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) + max-active: 8 # 连接池最大连接数 + max-idle: 8 # 连接池最大空闲连接数 + min-idle: 0 # 连接池最小空闲连接数 + max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制 data: elasticsearch: repositories: - enabled: true - cluster-nodes: 127.0.0.1:9300 # es的连接地址及端口号 - cluster-name: elasticsearch # es集群的名称 + enabled: true # 开启ES仓库配置,自动为仓库接口生成实现类 + mongodb: + host: localhost # MongoDB的连接地址 + port: 27017 # MongoDB的连接端口号 + database: mall-port # MongoDB的连接的数据库 + elasticsearch: + uris: http://localhost:9200 # ES的连接地址及端口号 mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml # 自定义redis key @@ -44,3 +50,20 @@ jwt: secret: mySecret #JWT加解密使用的密钥 expiration: 604800 #JWT的超期限时间(60*60*24) tokenHead: Bearer #JWT负载中拿到开头 + +secure: + ignored: + urls: #安全路径白名单 + - /swagger-ui/ + - /swagger-resources/** + - /**/v2/api-docs + - /**/*.html + - /**/*.js + - /**/*.css + - /**/*.png + - /favicon.ico + - /actuator/** + - /druid/** + - /admin/** + - /esProduct/** + - /member/readHistory/** \ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-06/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/mapper/EsProductDao.xml b/mall-tiny-06/src/main/resources/dao/EsProductDao.xml similarity index 100% rename from mall-tiny-07/src/main/resources/mapper/EsProductDao.xml rename to mall-tiny-06/src/main/resources/dao/EsProductDao.xml diff --git a/mall-tiny-06/src/main/resources/generator.properties b/mall-tiny-06/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-06/src/main/resources/generator.properties +++ b/mall-tiny-06/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/generatorConfig.xml b/mall-tiny-06/src/main/resources/generatorConfig.xml index 106e337f..4b8f16eb 100644 --- a/mall-tiny-06/src/main/resources/generatorConfig.xml +++ b/mall-tiny-06/src/main/resources/generatorConfig.xml @@ -6,59 +6,45 @@ + + + + + - + + + - + - + - + - + - +
- - - -
- - - -
- - - -
- - -
- - -
- - -
\ No newline at end of file diff --git a/mall-tiny-06/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny-06/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny-06/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny-06/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-06/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-06/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-06/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-07/pom.xml b/mall-tiny-07/pom.xml index d46bc185..863cb45e 100644 --- a/mall-tiny-07/pom.xml +++ b/mall-tiny-07/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-07 - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-07 Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,38 +37,45 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} - + org.springframework.boot spring-boot-starter-data-redis @@ -82,28 +85,27 @@ org.springframework.boot spring-boot-starter-security - - - cn.hutool - hutool-all - 4.5.7 - io.jsonwebtoken jjwt - 0.9.0 + ${jjwt.version} org.springframework.boot spring-boot-starter-data-elasticsearch - + org.springframework.boot spring-boot-starter-data-mongodb + + + org.springframework.boot + spring-boot-starter-amqp + diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index cd91d663..a5f04b7d 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java index 5ec26f6c..89e32146 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java @@ -14,7 +14,8 @@ import java.util.Map; /** - * JwtToken生成的工具类 + * @auther macrozheng + * @description JwtToken生成的工具类 * JWT token的格式:header.payload.signature * header的格式(算法、token的类型): * {"alg": "HS512","typ": "JWT"} @@ -22,7 +23,8 @@ * {"sub":"wang","created":1489079981393,"exp":1489684781} * signature的生成算法: * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class JwtTokenUtil { @@ -35,7 +37,7 @@ public class JwtTokenUtil { private Long expiration; /** - * 根据负责生成JWT的token + * 根据负载生成JWT的token */ private String generateToken(Map claims) { return Jwts.builder() diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java new file mode 100644 index 00000000..1e16430d --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java @@ -0,0 +1,28 @@ +package com.macro.mall.tiny.component; + +import com.macro.mall.tiny.service.OmsPortalOrderService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @auther macrozheng + * @description 取消订单消息的处理者 + * @date 2018/9/14 + * @github https://github.com/macrozheng + */ +@Component +@RabbitListener(queues = "mall.order.cancel") +public class CancelOrderReceiver { + private static Logger LOGGER =LoggerFactory.getLogger(CancelOrderReceiver.class); + @Autowired + private OmsPortalOrderService portalOrderService; + @RabbitHandler + public void handle(Long orderId){ + LOGGER.info("receive delay message orderId:{}",orderId); + portalOrderService.cancelOrder(orderId); + } +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java new file mode 100644 index 00000000..392f1722 --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java @@ -0,0 +1,37 @@ +package com.macro.mall.tiny.component; + +import com.macro.mall.tiny.dto.QueueEnum; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.AmqpException; +import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.core.MessagePostProcessor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @auther macrozheng + * @description 取消订单消息的发出者 + * @date 2018/9/14 + * @github https://github.com/macrozheng + */ +@Component +public class CancelOrderSender { + private static Logger LOGGER =LoggerFactory.getLogger(CancelOrderSender.class); + @Autowired + private AmqpTemplate amqpTemplate; + + public void sendMessage(Long orderId,final long delayTimes){ + //给延迟队列发送消息 + amqpTemplate.convertAndSend(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getExchange(), QueueEnum.QUEUE_TTL_ORDER_CANCEL.getRouteKey(), orderId, new MessagePostProcessor() { + @Override + public Message postProcessMessage(Message message) throws AmqpException { + //给消息设置延迟毫秒值 + message.getMessageProperties().setExpiration(String.valueOf(delayTimes)); + return message; + } + }); + LOGGER.info("send delay message orderId:{}",orderId); + } +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java index abdb7b71..65cc9fcb 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java @@ -19,8 +19,10 @@ import java.io.IOException; /** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description JWT登录授权过滤器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java deleted file mode 100644 index 678406da..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.component; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -/** - * Created by macro on 2018/8/24. - * 订单超时取消并解锁库存的定时器 - */ -@Component -public class OrderTimeOutCancelTask { - private Logger LOGGER = LoggerFactory.getLogger(OrderTimeOutCancelTask.class); - - /** - * cron表达式:Seconds Minutes Hours DayofMonth Month DayofWeek [Year] - * 每10分钟扫描一次,扫描设定超时时间之前下的订单,如果没支付则取消该订单 - */ - @Scheduled(cron = "0 0/10 * ? * ?") - private void cancelTimeOutOrder() { - // TODO: 2019/5/3 此处应调用取消订单的方法,具体查看mall项目源码 - LOGGER.info("取消订单,并根据sku编号释放锁定库存"); - } -} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java index 757df36c..1445038f 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. + * @auther macrozheng + * @description 当未登录或者token失效访问接口时,自定义的返回结果 + * @date 2018/5/14 + * @github https://github.com/macrozheng */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java index bc201cce..769dbfc3 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 当访问接口没有权限时,自定义的返回结果 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java new file mode 100644 index 00000000..21fa1f30 --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java @@ -0,0 +1,25 @@ +package com.macro.mall.tiny.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @auther macrozheng + * @description 用于配置白名单资源路径 + * @date 2018/11/5 + * @github https://github.com/macrozheng + */ +@Getter +@Setter +@Configuration +@ConfigurationProperties(prefix = "secure.ignored") +public class IgnoreUrlsConfig { + + private List urls = new ArrayList<>(); + +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java new file mode 100644 index 00000000..2830c98d --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java @@ -0,0 +1,34 @@ +package com.macro.mall.tiny.config; + +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.service.UmsAdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +/** + * @auther macrozheng + * @description 自定义配置,用于配置如何获取用户信息 + * @date 2022/5/20 + * @github https://github.com/macrozheng + */ +@Configuration +public class MallSecurityConfig { + + @Autowired + private UmsAdminService adminService; + + @Bean + public UserDetailsService userDetailsService() { + //获取登录用户信息 + return username -> { + AdminUserDetails admin = adminService.getAdminByUsername(username); + if (admin != null) { + return admin; + } + throw new UsernameNotFoundException("用户名或密码错误"); + }; + } +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index f4584332..ad775947 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java new file mode 100644 index 00000000..299310eb --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java @@ -0,0 +1,81 @@ +package com.macro.mall.tiny.config; + +import com.macro.mall.tiny.dto.QueueEnum; +import org.springframework.amqp.core.*; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @auther macrozheng + * @description 消息队列配置 + * @date 2018/9/14 + * @github https://github.com/macrozheng + */ +@Configuration +public class RabbitMqConfig { + + /** + * 订单消息实际消费队列所绑定的交换机 + */ + @Bean + DirectExchange orderDirect() { + return ExchangeBuilder + .directExchange(QueueEnum.QUEUE_ORDER_CANCEL.getExchange()) + .durable(true) + .build(); + } + + /** + * 订单延迟队列所绑定的交换机 + */ + @Bean + DirectExchange orderTtlDirect() { + return ExchangeBuilder + .directExchange(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getExchange()) + .durable(true) + .build(); + } + + /** + * 订单实际消费队列 + */ + @Bean + public Queue orderQueue() { + return new Queue(QueueEnum.QUEUE_ORDER_CANCEL.getName()); + } + + /** + * 订单延迟队列(死信队列) + */ + @Bean + public Queue orderTtlQueue() { + return QueueBuilder + .durable(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getName()) + .withArgument("x-dead-letter-exchange", QueueEnum.QUEUE_ORDER_CANCEL.getExchange())//到期后转发的交换机 + .withArgument("x-dead-letter-routing-key", QueueEnum.QUEUE_ORDER_CANCEL.getRouteKey())//到期后转发的路由键 + .build(); + } + + /** + * 将订单队列绑定到交换机 + */ + @Bean + Binding orderBinding(DirectExchange orderDirect,Queue orderQueue){ + return BindingBuilder + .bind(orderQueue) + .to(orderDirect) + .with(QueueEnum.QUEUE_ORDER_CANCEL.getRouteKey()); + } + + /** + * 将订单延迟队列绑定到交换机 + */ + @Bean + Binding orderTtlBinding(DirectExchange orderTtlDirect,Queue orderTtlQueue){ + return BindingBuilder + .bind(orderTtlQueue) + .to(orderTtlDirect) + .with(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getRouteKey()); + } + +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/RedisConfig.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/RedisConfig.java new file mode 100644 index 00000000..c93b29ac --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/RedisConfig.java @@ -0,0 +1,71 @@ +package com.macro.mall.tiny.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 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; + +/** + * @auther macrozheng + * @description Redis配置类 + * @date 2020/3/2 + * @github https://github.com/macrozheng + */ +@EnableCaching +@Configuration +public class RedisConfig { + + /** + * redis数据库自定义key + */ + public static final String REDIS_KEY_DATABASE="mall"; + + @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); + } + +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java index eab2ba24..70dd99ba 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java @@ -3,9 +3,7 @@ import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.dto.AdminUserDetails; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; import com.macro.mall.tiny.service.UmsAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -17,58 +15,50 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import java.util.List; - /** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description SpringSecurity的配置 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled=true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; +public class SecurityConfig { @Autowired private RestfulAccessDeniedHandler restfulAccessDeniedHandler; @Autowired private RestAuthenticationEntryPoint restAuthenticationEntryPoint; + @Autowired + private IgnoreUrlsConfig ignoreUrlsConfig; - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity + .authorizeRequests(); + //不需要保护的资源路径允许访问 + for (String url : ignoreUrlsConfig.getUrls()) { + registry.antMatchers(url).permitAll(); + } + //允许跨域请求的OPTIONS请求 + registry.antMatchers(HttpMethod.OPTIONS) + .permitAll(); httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf .disable() .sessionManagement()// 基于token,所以不需要session .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login", "/admin/register")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers("/esProduct/**","/member/readHistory/**")// 搜索及会员浏览记录暂时允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() -// .antMatchers("/**")//测试时全部运行访问 -// .permitAll() .anyRequest()// 除上面外的所有请求全部需要鉴权认证 .authenticated(); // 禁用缓存 @@ -79,12 +69,7 @@ protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.exceptionHandling() .accessDeniedHandler(restfulAccessDeniedHandler) .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); + return httpSecurity.build(); } @Bean @@ -92,28 +77,9 @@ public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - UmsAdmin admin = adminService.getAdminByUsername(username); - if (admin != null) { - List permissionList = adminService.getPermissionList(admin.getId()); - return new AdminUserDetails(admin,permissionList); - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - @Bean public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ return new JwtAuthenticationTokenFilter(); } - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java deleted file mode 100644 index 54c5f4f8..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; - -/** - * 定时任务配置 - * Created by macro on 2019/4/8. - */ -@Configuration -@EnableScheduling -public class SpringTaskConfig { -} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 8946105a..930cac51 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,34 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; 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 springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置(带认证) + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) .paths(PathSelectors.any()) .build() @@ -41,14 +46,14 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } - private List securitySchemes() { + private List securitySchemes() { //设置请求头信息 - List result = new ArrayList<>(); + List result = new ArrayList<>(); ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); result.add(apiKey); return result; @@ -61,7 +66,7 @@ private List securityContexts() { return result; } - private SecurityContext getContextByPath(String pathRegex){ + private SecurityContext getContextByPath(String pathRegex) { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex(pathRegex)) @@ -76,4 +81,37 @@ private List defaultAuth() { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/EsProductController.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/EsProductController.java index 5ea0b066..7e318e78 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/EsProductController.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/EsProductController.java @@ -6,6 +6,7 @@ import com.macro.mall.tiny.service.EsProductService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.stereotype.Controller; @@ -14,11 +15,14 @@ import java.util.List; /** - * 搜索商品管理Controller - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品管理Controller + * @date 2018/6/19 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "EsProductController", description = "搜索商品管理") +@Api(tags = "EsProductController") +@Tag(name = "EsProductController", description = "搜索商品管理") @RequestMapping("/esProduct") public class EsProductController { @Autowired @@ -69,5 +73,4 @@ public CommonResult> search(@RequestParam(required = false Page esProductPage = esProductService.search(keyword, pageNum, pageSize); return CommonResult.success(CommonPage.restPage(esProductPage)); } - } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java index 12b060aa..77e6727e 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java @@ -5,6 +5,7 @@ import com.macro.mall.tiny.service.MemberReadHistoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -12,11 +13,14 @@ import java.util.List; /** - * 会员商品浏览记录管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员商品浏览记录管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "MemberReadHistoryController", description = "会员商品浏览记录管理") +@Api(tags = "MemberReadHistoryController") +@Tag(name = "MemberReadHistoryController", description = "会员商品浏览记录管理") @RequestMapping("/member/readHistory") public class MemberReadHistoryController { @Autowired diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java new file mode 100644 index 00000000..1e08c396 --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java @@ -0,0 +1,35 @@ +package com.macro.mall.tiny.controller; + +import com.macro.mall.tiny.dto.OrderParam; +import com.macro.mall.tiny.service.OmsPortalOrderService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @auther macrozheng + * @description 订单管理Controller + * @date 2018/8/30 + * @github https://github.com/macrozheng + */ +@Controller +@Api(tags = "OmsPortalOrderController") +@Tag(name = "OmsPortalOrderController", description = "订单管理") +@RequestMapping("/order") +public class OmsPortalOrderController { + @Autowired + private OmsPortalOrderService portalOrderService; + + @ApiOperation("根据购物车信息生成订单") + @RequestMapping(value = "/generateOrder", method = RequestMethod.POST) + @ResponseBody + public Object generateOrder(@RequestBody OrderParam orderParam) { + return portalOrderService.generateOrder(orderParam); + } +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 0dee32a4..b75a2598 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +20,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired @@ -34,7 +38,7 @@ public class PmsBrandController { @ApiOperation("获取所有品牌列表") @RequestMapping(value = "listAll", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:listAll')") public CommonResult> getBrandList() { return CommonResult.success(brandService.listAllBrand()); } @@ -42,7 +46,7 @@ public CommonResult> getBrandList() { @ApiOperation("添加品牌") @RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:create')") + @PreAuthorize("hasAuthority('brand:create')") public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { CommonResult commonResult; int count = brandService.createBrand(pmsBrand); @@ -59,7 +63,7 @@ public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { @ApiOperation("更新指定id品牌信息") @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:update')") + @PreAuthorize("hasAuthority('brand:update')") public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { CommonResult commonResult; int count = brandService.updateBrand(id, pmsBrandDto); @@ -76,7 +80,7 @@ public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBra @ApiOperation("删除指定id的品牌") @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:delete')") + @PreAuthorize("hasAuthority('brand:delete')") public CommonResult deleteBrand(@PathVariable("id") Long id) { int count = brandService.deleteBrand(id); if (count == 1) { @@ -91,7 +95,7 @@ public CommonResult deleteBrand(@PathVariable("id") Long id) { @ApiOperation("分页查询品牌列表") @RequestMapping(value = "/list", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:list')") public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") @ApiParam("页码") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "3") @@ -103,7 +107,6 @@ public CommonResult> listBrand(@RequestParam(value = "pageN @ApiOperation("获取指定id的品牌详情") @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") public CommonResult brand(@PathVariable("id") Long id) { return CommonResult.success(brandService.getBrand(id)); } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index d95f9683..de2b21fc 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -1,28 +1,32 @@ package com.macro.mall.tiny.controller; import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.List; import java.util.Map; /** - * 后台用户管理 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { @Autowired @@ -32,22 +36,12 @@ public class UmsAdminController { @Value("${jwt.tokenHead}") private String tokenHead; - @ApiOperation(value = "用户注册") - @RequestMapping(value = "/register", method = RequestMethod.POST) - @ResponseBody - public CommonResult register(@RequestBody UmsAdmin umsAdminParam, BindingResult result) { - UmsAdmin umsAdmin = adminService.register(umsAdminParam); - if (umsAdmin == null) { - CommonResult.failed(); - } - return CommonResult.success(umsAdmin); - } @ApiOperation(value = "登录以后返回token") @RequestMapping(value = "/login", method = RequestMethod.POST) @ResponseBody - public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) { - String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword()); + public CommonResult login(@RequestParam String username, @RequestParam String password) { + String token = adminService.login(username, password); if (token == null) { return CommonResult.validateFailed("用户名或密码错误"); } @@ -57,11 +51,11 @@ public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, Bi return CommonResult.success(tokenMap); } - @ApiOperation("获取用户所有权限(包括+-权限)") - @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET) + @ApiOperation(value = "登录以后返回token") + @RequestMapping(value = "/resourceList", method = RequestMethod.POST) @ResponseBody - public CommonResult> getPermissionList(@PathVariable Long adminId) { - List permissionList = adminService.getPermissionList(adminId); - return CommonResult.success(permissionList); + public CommonResult> resourceList() { + List resourceList = adminService.getResourceList(); + return CommonResult.success(resourceList); } } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java index c936c689..5825367b 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.UmsMemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员登录注册管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") +@Api(tags = "UmsMemberController") +@Tag(name = "UmsMemberController", description = "会员登录注册管理") @RequestMapping("/sso") public class UmsMemberController { @Autowired diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java index 7a9a94e2..d2a58a41 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 搜索系统中的商品管理自定义Dao - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索系统中的商品管理自定义Dao + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductDao { List getAllEsProductList(@Param("id") Long id); diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java deleted file mode 100644 index 50f00f7c..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.dao; - - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 后台用户与角色管理自定义Dao - * Created by macro on 2018/10/8. - */ -public interface UmsAdminRoleRelationDao { - - /** - * 获取用户所有权限(包括+-权限) - */ - List getPermissionList(@Param("adminId") Long adminId); -} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java new file mode 100644 index 00000000..c26f1b96 --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java @@ -0,0 +1,61 @@ +package com.macro.mall.tiny.domain; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @auther macrozheng + * @description SpringSecurity用户信息封装类 + * @date 2020/10/15 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Builder +public class AdminUserDetails implements UserDetails { + private String username; + private String password; + private List authorityList; + @Override + public Collection getAuthorities() { + return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); + } + + @Override + public String getPassword() { + return this.password; + } + + @Override + public String getUsername() { + return this.username; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/domain/UmsResource.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/domain/UmsResource.java new file mode 100644 index 00000000..baf9890d --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/domain/UmsResource.java @@ -0,0 +1,42 @@ +package com.macro.mall.tiny.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + *

+ * 后台资源表 + *

+ * + * @author macro + * @since 2020-08-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="UmsResource对象", description="后台资源表") +@Builder +public class UmsResource{ + + private Long id; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "资源名称") + private String name; + + @ApiModelProperty(value = "资源URL") + private String url; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "资源分类ID") + private Long categoryId; + +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java deleted file mode 100644 index bd712424..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * SpringSecurity需要的用户详情 - * Created by macro on 2018/4/26. - */ -public class AdminUserDetails implements UserDetails { - private UmsAdmin umsAdmin; - private List permissionList; - public AdminUserDetails(UmsAdmin umsAdmin, List permissionList) { - this.umsAdmin = umsAdmin; - this.permissionList = permissionList; - } - - @Override - public Collection getAuthorities() { - //返回当前用户的权限 - return permissionList.stream() - .filter(permission -> permission.getValue()!=null) - .map(permission ->new SimpleGrantedAuthority(permission.getValue())) - .collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return umsAdmin.getPassword(); - } - - @Override - public String getUsername() { - return umsAdmin.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return umsAdmin.getStatus().equals(1); - } -} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/OrderParam.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/OrderParam.java new file mode 100644 index 00000000..2c959ea7 --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/OrderParam.java @@ -0,0 +1,21 @@ +package com.macro.mall.tiny.dto; + +import lombok.Data; + +/** + * @auther macrozheng + * @description 生成订单时传入的参数 + * @date 2018/8/30 + * @github https://github.com/macrozheng + */ +@Data +public class OrderParam { + //收货地址id + private Long memberReceiveAddressId; + //优惠券id + private Long couponId; + //使用的积分数 + private Integer useIntegration; + //支付方式 + private Integer payType; +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java new file mode 100644 index 00000000..12df3136 --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java @@ -0,0 +1,40 @@ +package com.macro.mall.tiny.dto; + +import lombok.Getter; + +/** + * @auther macrozheng + * @description 消息队列枚举配置 + * @date 2018/9/14 + * @github https://github.com/macrozheng + */ +@Getter +public enum QueueEnum { + /** + * 消息通知队列 + */ + QUEUE_ORDER_CANCEL("mall.order.direct", "mall.order.cancel", "mall.order.cancel"), + /** + * 消息通知ttl队列 + */ + QUEUE_TTL_ORDER_CANCEL("mall.order.direct.ttl", "mall.order.cancel.ttl", "mall.order.cancel.ttl"); + + /** + * 交换机名称 + */ + private String exchange; + /** + * 队列名称 + */ + private String name; + /** + * 路由键 + */ + private String routeKey; + + QueueEnum(String exchange, String name, String routeKey) { + this.exchange = exchange; + this.name = name; + this.routeKey = routeKey; + } +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java deleted file mode 100644 index 94e9396a..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.validator.constraints.NotEmpty; - -/** - * 用户登录参数 - * Created by macro on 2018/4/26. - */ -public class UmsAdminLoginParam { - @ApiModelProperty(value = "用户名", required = true) - @NotEmpty(message = "用户名不能为空") - private String username; - @ApiModelProperty(value = "密码", required = true) - @NotEmpty(message = "密码不能为空") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java index 3a8e6839..88ad394b 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java @@ -1,19 +1,27 @@ package com.macro.mall.tiny.nosql.elasticsearch.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; +import org.springframework.data.elasticsearch.annotations.Setting; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; /** - * 搜索中的商品信息 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品的信息 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ -@Document(indexName = "pms", type = "product",shards = 1,replicas = 0) +@Data +@EqualsAndHashCode +@Document(indexName = "pms") +@Setting(shards = 1,replicas = 0) public class EsProduct implements Serializable { private static final long serialVersionUID = -1L; @Id @@ -42,148 +50,4 @@ public class EsProduct implements Serializable { private Integer sort; @Field(type =FieldType.Nested) private List attrValueList; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getProductSn() { - return productSn; - } - - public void setProductSn(String productSn) { - this.productSn = productSn; - } - - public Long getBrandId() { - return brandId; - } - - public void setBrandId(Long brandId) { - this.brandId = brandId; - } - - public String getBrandName() { - return brandName; - } - - public void setBrandName(String brandName) { - this.brandName = brandName; - } - - public Long getProductCategoryId() { - return productCategoryId; - } - - public void setProductCategoryId(Long productCategoryId) { - this.productCategoryId = productCategoryId; - } - - public String getProductCategoryName() { - return productCategoryName; - } - - public void setProductCategoryName(String productCategoryName) { - this.productCategoryName = productCategoryName; - } - - public String getPic() { - return pic; - } - - public void setPic(String pic) { - this.pic = pic; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSubTitle() { - return subTitle; - } - - public void setSubTitle(String subTitle) { - this.subTitle = subTitle; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public Integer getSale() { - return sale; - } - - public void setSale(Integer sale) { - this.sale = sale; - } - - public Integer getNewStatus() { - return newStatus; - } - - public void setNewStatus(Integer newStatus) { - this.newStatus = newStatus; - } - - public Integer getRecommandStatus() { - return recommandStatus; - } - - public void setRecommandStatus(Integer recommandStatus) { - this.recommandStatus = recommandStatus; - } - - public Integer getStock() { - return stock; - } - - public void setStock(Integer stock) { - this.stock = stock; - } - - public Integer getPromotionType() { - return promotionType; - } - - public void setPromotionType(Integer promotionType) { - this.promotionType = promotionType; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public List getAttrValueList() { - return attrValueList; - } - - public void setAttrValueList(List attrValueList) { - this.attrValueList = attrValueList; - } - - public String getKeywords() { - return keywords; - } - - public void setKeywords(String keywords) { - this.keywords = keywords; - } } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java index 676f6e23..ab95faa6 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java @@ -1,14 +1,20 @@ package com.macro.mall.tiny.nosql.elasticsearch.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; import java.io.Serializable; /** - * 搜索中的商品属性信息 - * Created by macro on 2018/6/27. + * @auther macrozheng + * @description 搜索商品的属性信息 + * @date 2018/6/27 + * @github https://github.com/macrozheng */ +@Data +@EqualsAndHashCode public class EsProductAttributeValue implements Serializable { private static final long serialVersionUID = 1L; private Long id; @@ -21,43 +27,4 @@ public class EsProductAttributeValue implements Serializable { //属性名称 @Field(type=FieldType.Keyword) private String name; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getProductAttributeId() { - return productAttributeId; - } - - public void setProductAttributeId(Long productAttributeId) { - this.productAttributeId = productAttributeId; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java index d874dd7f..21430576 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java @@ -6,8 +6,10 @@ import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; /** - * 商品ES操作类 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 商品ES操作类 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductRepository extends ElasticsearchRepository { /** diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java index 61fbe867..4b9c99f6 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java @@ -1,5 +1,7 @@ package com.macro.mall.tiny.nosql.mongodb.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; @@ -7,9 +9,13 @@ import java.util.Date; /** - * 用户商品浏览历史记录 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 用户商品浏览历史记录 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ +@Data +@EqualsAndHashCode @Document public class MemberReadHistory { @Id @@ -25,84 +31,4 @@ public class MemberReadHistory { private String productSubTitle; private String productPrice; private Date createTime; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public Long getMemberId() { - return memberId; - } - - public void setMemberId(Long memberId) { - this.memberId = memberId; - } - - public String getMemberNickname() { - return memberNickname; - } - - public void setMemberNickname(String memberNickname) { - this.memberNickname = memberNickname; - } - - public String getMemberIcon() { - return memberIcon; - } - - public void setMemberIcon(String memberIcon) { - this.memberIcon = memberIcon; - } - - public Long getProductId() { - return productId; - } - - public void setProductId(Long productId) { - this.productId = productId; - } - - public String getProductName() { - return productName; - } - - public void setProductName(String productName) { - this.productName = productName; - } - - public String getProductPic() { - return productPic; - } - - public void setProductPic(String productPic) { - this.productPic = productPic; - } - - public String getProductSubTitle() { - return productSubTitle; - } - - public void setProductSubTitle(String productSubTitle) { - this.productSubTitle = productSubTitle; - } - - public String getProductPrice() { - return productPrice; - } - - public void setProductPrice(String productPrice) { - this.productPrice = productPrice; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java index 10424bc2..229e10e8 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java @@ -7,8 +7,10 @@ import java.util.List; /** - * 会员商品浏览历史Repository - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员商品浏览历史Repository + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface MemberReadHistoryRepository extends MongoRepository { /** diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/EsProductService.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/EsProductService.java index f2c15434..ebb9e313 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/EsProductService.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/EsProductService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 商品搜索管理Service - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 商品搜索管理Service + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductService { /** diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java index b81903b5..45159dc7 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 会员浏览记录管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员浏览记录管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface MemberReadHistoryService { /** diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java new file mode 100644 index 00000000..0ac7bcf7 --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java @@ -0,0 +1,26 @@ +package com.macro.mall.tiny.service; + +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.dto.OrderParam; +import org.springframework.transaction.annotation.Transactional; + +/** + * @auther macrozheng + * @description 前台订单管理Service + * @date 2018/8/30 + * @github https://github.com/macrozheng + */ +public interface OmsPortalOrderService { + + /** + * 根据提交信息生成订单 + */ + @Transactional + CommonResult generateOrder(OrderParam orderParam); + + /** + * 取消单个超时订单 + */ + @Transactional + void cancelOrder(Long orderId); +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/RedisService.java index 191ab73b..370c456c 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/RedisService.java @@ -1,35 +1,184 @@ package com.macro.mall.tiny.service; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作Service + * @date 2020/3/3 + * @github https://github.com/macrozheng */ public interface RedisService { + + /** + * 保存属性 + */ + void set(String key, Object value, long time); + + /** + * 保存属性 + */ + void set(String key, Object value); + + /** + * 获取属性 + */ + Object get(String key); + + /** + * 删除属性 + */ + Boolean del(String key); + + /** + * 批量删除属性 + */ + Long del(List keys); + + /** + * 设置过期时间 + */ + Boolean expire(String key, long time); + + /** + * 获取过期时间 + */ + Long getExpire(String key); + + /** + * 判断是否有该属性 + */ + Boolean hasKey(String key); + + /** + * 按delta递增 + */ + Long incr(String key, long delta); + + /** + * 按delta递减 + */ + Long decr(String key, long delta); + + /** + * 获取Hash结构中的属性 + */ + Object hGet(String key, String hashKey); + + /** + * 向Hash结构中放入一个属性 + */ + Boolean hSet(String key, String hashKey, Object value, long time); + + /** + * 向Hash结构中放入一个属性 + */ + void hSet(String key, String hashKey, Object value); + + /** + * 直接获取整个Hash结构 + */ + Map hGetAll(String key); + /** - * 存储数据 + * 直接设置整个Hash结构 */ - void set(String key, String value); + Boolean hSetAll(String key, Map map, long time); /** - * 获取数据 + * 直接设置整个Hash结构 */ - String get(String key); + void hSetAll(String key, Map map); /** - * 设置超期时间 + * 删除Hash结构中的属性 */ - boolean expire(String key, long expire); + void hDel(String key, Object... hashKey); /** - * 删除数据 + * 判断Hash结构中是否有该属性 */ - void remove(String key); + Boolean hHasKey(String key, String hashKey); /** - * 自增操作 - * @param delta 自增步长 + * Hash结构中属性递增 */ - Long increment(String key, long delta); + Long hIncr(String key, String hashKey, Long delta); -} + /** + * Hash结构中属性递减 + */ + Long hDecr(String key, String hashKey, Long delta); + + /** + * 获取Set结构 + */ + Set sMembers(String key); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, Object... values); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, long time, Object... values); + + /** + * 是否为Set中的属性 + */ + Boolean sIsMember(String key, Object value); + + /** + * 获取Set结构的长度 + */ + Long sSize(String key); + + /** + * 删除Set结构中的属性 + */ + Long sRemove(String key, Object... values); + + /** + * 获取List结构中的属性 + */ + List lRange(String key, long start, long end); + + /** + * 获取List结构的长度 + */ + Long lSize(String key); + + /** + * 根据索引获取List中的属性 + */ + Object lIndex(String key, long index); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value, long time); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Object... values); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Long time, Object... values); + + /** + * 从List结构中移除属性 + */ + Long lRemove(String key, long count, Object value); +} \ No newline at end of file diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 08a9d539..5180e8e9 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -1,35 +1,29 @@ package com.macro.mall.tiny.service; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import java.util.List; /** - * 后台管理员Service - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service + * @date 2020/10/15 + * @github https://github.com/macrozheng */ public interface UmsAdminService { /** - * 根据用户名获取后台管理员 + * 根据用户名获取用户信息 */ - UmsAdmin getAdminByUsername(String username); + AdminUserDetails getAdminByUsername(String username); /** - * 注册功能 + * 获取所以权限列表 */ - UmsAdmin register(UmsAdmin umsAdminParam); + List getResourceList(); /** - * 登录功能 - * @param username 用户名 - * @param password 密码 - * @return 生成的JWT的token + * 用户名密码登录 */ String login(String username, String password); - - /** - * 获取用户所有权限(包括角色权限和+-权限) - */ - List getPermissionList(Long adminId); } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java index f9fd8ac9..8cf694d3 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.common.api.CommonResult; /** - * 会员管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface UmsMemberService { diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java index 44939caa..98891874 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java @@ -19,8 +19,10 @@ /** - * 商品搜索管理Service实现类 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品管理Service实现类 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ @Service public class EsProductServiceImpl implements EsProductService { @@ -29,7 +31,6 @@ public class EsProductServiceImpl implements EsProductService { private EsProductDao productDao; @Autowired private EsProductRepository productRepository; - @Override public int importAll() { List esProductList = productDao.getAllEsProductList(null); diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java index 977a331e..1dba57c7 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * 会员浏览记录管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员浏览记录管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class MemberReadHistoryServiceImpl implements MemberReadHistoryService { diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java new file mode 100644 index 00000000..f8ff5323 --- /dev/null +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java @@ -0,0 +1,46 @@ +package com.macro.mall.tiny.service.impl; + +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.component.CancelOrderSender; +import com.macro.mall.tiny.dto.OrderParam; +import com.macro.mall.tiny.service.OmsPortalOrderService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @auther macrozheng + * @description 前台订单管理Service + * @date 2018/8/30 + * @github https://github.com/macrozheng + */ +@Service +public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { + private static Logger LOGGER = LoggerFactory.getLogger(OmsPortalOrderServiceImpl.class); + @Autowired + private CancelOrderSender cancelOrderSender; + + @Override + public CommonResult generateOrder(OrderParam orderParam) { + //todo 执行一系类下单操作,具体参考mall项目 + LOGGER.info("process generateOrder"); + //下单完成后开启一个延迟消息,用于当用户没有付款时取消订单(orderId应该在下单后生成) + sendDelayMessageCancelOrder(11L); + return CommonResult.success(null, "下单成功"); + } + + @Override + public void cancelOrder(Long orderId) { + //todo 执行一系类取消订单操作,具体参考mall项目 + LOGGER.info("process cancelOrder orderId:{}",orderId); + } + + private void sendDelayMessageCancelOrder(Long orderId) { + //获取订单超时时间,假设为60分钟(测试用的30秒) + long delayTimes = 30 * 1000; + //发送延迟消息 + cancelOrderSender.sendMessage(orderId, delayTimes); + } + +} diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java index cb9d7e0c..8ff149fd 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java @@ -2,42 +2,200 @@ import com.macro.mall.tiny.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; /** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作实现类 + * @date 2020/3/3 + * @github https://github.com/macrozheng */ @Service public class RedisServiceImpl implements RedisService { @Autowired - private StringRedisTemplate stringRedisTemplate; + private RedisTemplate redisTemplate; @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); + public void set(String key, Object value, long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); + public void set(String key, Object value) { + redisTemplate.opsForValue().set(key, value); } @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); + public Object get(String key) { + return redisTemplate.opsForValue().get(key); } @Override - public void remove(String key) { - stringRedisTemplate.delete(key); + public Boolean del(String key) { + return redisTemplate.delete(key); } @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); + public Long del(List keys) { + return redisTemplate.delete(keys); + } + + @Override + public Boolean expire(String key, long time) { + return redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + + @Override + public Long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + @Override + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + @Override + public Long incr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, delta); + } + + @Override + public Long decr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, -delta); + } + + @Override + public Object hGet(String key, String hashKey) { + return redisTemplate.opsForHash().get(key, hashKey); + } + + @Override + public Boolean hSet(String key, String hashKey, Object value, long time) { + redisTemplate.opsForHash().put(key, hashKey, value); + return expire(key, time); + } + + @Override + public void hSet(String key, String hashKey, Object value) { + redisTemplate.opsForHash().put(key, hashKey, value); + } + + @Override + public Map hGetAll(String key) { + return redisTemplate.opsForHash().entries(key); + } + + @Override + public Boolean hSetAll(String key, Map map, long time) { + redisTemplate.opsForHash().putAll(key, map); + return expire(key, time); + } + + @Override + public void hSetAll(String key, Map map) { + redisTemplate.opsForHash().putAll(key, map); + } + + @Override + public void hDel(String key, Object... hashKey) { + redisTemplate.opsForHash().delete(key, hashKey); + } + + @Override + public Boolean hHasKey(String key, String hashKey) { + return redisTemplate.opsForHash().hasKey(key, hashKey); + } + + @Override + public Long hIncr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, delta); + } + + @Override + public Long hDecr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, -delta); + } + + @Override + public Set sMembers(String key) { + return redisTemplate.opsForSet().members(key); + } + + @Override + public Long sAdd(String key, Object... values) { + return redisTemplate.opsForSet().add(key, values); + } + + @Override + public Long sAdd(String key, long time, Object... values) { + Long count = redisTemplate.opsForSet().add(key, values); + expire(key, time); + return count; + } + + @Override + public Boolean sIsMember(String key, Object value) { + return redisTemplate.opsForSet().isMember(key, value); + } + + @Override + public Long sSize(String key) { + return redisTemplate.opsForSet().size(key); + } + + @Override + public Long sRemove(String key, Object... values) { + return redisTemplate.opsForSet().remove(key, values); + } + + @Override + public List lRange(String key, long start, long end) { + return redisTemplate.opsForList().range(key, start, end); + } + + @Override + public Long lSize(String key) { + return redisTemplate.opsForList().size(key); + } + + @Override + public Object lIndex(String key, long index) { + return redisTemplate.opsForList().index(key, index); + } + + @Override + public Long lPush(String key, Object value) { + return redisTemplate.opsForList().rightPush(key, value); + } + + @Override + public Long lPush(String key, Object value, long time) { + Long index = redisTemplate.opsForList().rightPush(key, value); + expire(key, time); + return index; + } + + @Override + public Long lPushAll(String key, Object... values) { + return redisTemplate.opsForList().rightPushAll(key, values); + } + + @Override + public Long lPushAll(String key, Long time, Object... values) { + Long count = redisTemplate.opsForList().rightPushAll(key, values); + expire(key, time); + return count; + } + + @Override + public Long lRemove(String key, long count, Object value) { + return redisTemplate.opsForList().remove(key, count, value); } } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 4f0a052d..2f3236e1 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -1,87 +1,107 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.collection.CollUtil; import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.dao.UmsAdminRoleRelationDao; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.mapper.UmsAdminMapper; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import java.util.Date; +import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * UmsAdminService实现类 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service实现类 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ +@Slf4j @Service public class UmsAdminServiceImpl implements UmsAdminService { - private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class); - @Autowired - private UserDetailsService userDetailsService; + /** + * 存放默认用户信息 + */ + private List adminUserDetailsList = new ArrayList<>(); + /** + * 存放默认资源信息 + */ + private List resourceList = new ArrayList<>(); @Autowired private JwtTokenUtil jwtTokenUtil; @Autowired private PasswordEncoder passwordEncoder; - @Value("${jwt.tokenHead}") - private String tokenHead; - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminRoleRelationDao adminRoleRelationDao; + @PostConstruct + private void init(){ + adminUserDetailsList.add(AdminUserDetails.builder() + .username("admin") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:create","brand:update","brand:delete","brand:list","brand:listAll")) + .build()); + adminUserDetailsList.add(AdminUserDetails.builder() + .username("macro") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:listAll")) + .build()); + resourceList.add(UmsResource.builder() + .id(1L) + .name("brand:create") + .url("/brand/create") + .build()); + resourceList.add(UmsResource.builder() + .id(2L) + .name("brand:update") + .url("/brand/update/**") + .build()); + resourceList.add(UmsResource.builder() + .id(3L) + .name("brand:delete") + .url("/brand/delete/**") + .build()); + resourceList.add(UmsResource.builder() + .id(4L) + .name("brand:list") + .url("/brand/list") + .build()); + resourceList.add(UmsResource.builder() + .id(5L) + .name("brand:listAll") + .url("/brand/listAll") + .build()); + } @Override - public UmsAdmin getAdminByUsername(String username) { - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(username); - List adminList = adminMapper.selectByExample(example); - if (adminList != null && adminList.size() > 0) { - return adminList.get(0); + public AdminUserDetails getAdminByUsername(String username) { + List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(findList)){ + return findList.get(0); } return null; } @Override - public UmsAdmin register(UmsAdmin umsAdminParam) { - UmsAdmin umsAdmin = new UmsAdmin(); - BeanUtils.copyProperties(umsAdminParam, umsAdmin); - umsAdmin.setCreateTime(new Date()); - umsAdmin.setStatus(1); - //查询是否有相同用户名的用户 - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername()); - List umsAdminList = adminMapper.selectByExample(example); - if (umsAdminList.size() > 0) { - return null; - } - //将密码进行加密操作 - String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); - umsAdmin.setPassword(encodePassword); - adminMapper.insert(umsAdmin); - return umsAdmin; + public List getResourceList() { + return resourceList; } @Override public String login(String username, String password) { String token = null; try { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UserDetails userDetails = getAdminByUsername(username); + if(userDetails==null){ + return token; + } if (!passwordEncoder.matches(password, userDetails.getPassword())) { throw new BadCredentialsException("密码不正确"); } @@ -89,14 +109,8 @@ public String login(String username, String password) { SecurityContextHolder.getContext().setAuthentication(authentication); token = jwtTokenUtil.generateToken(userDetails); } catch (AuthenticationException e) { - LOGGER.warn("登录异常:{}", e.getMessage()); + log.warn("登录异常:{}", e.getMessage()); } return token; } - - - @Override - public List getPermissionList(Long adminId) { - return adminRoleRelationDao.getPermissionList(adminId); - } } diff --git a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java index 06378693..6c6aeb7f 100644 --- a/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ b/mall-tiny-07/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.util.StrUtil; import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.service.RedisService; import com.macro.mall.tiny.service.UmsMemberService; @@ -11,8 +12,10 @@ import java.util.Random; /** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class UmsMemberServiceImpl implements UmsMemberService { @@ -40,10 +43,10 @@ public CommonResult generateAuthCode(String telephone) { //对输入的验证码进行校验 @Override public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { + if (StrUtil.isEmpty(authCode)) { return CommonResult.failed("请输入验证码"); } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); + String realAuthCode = (String) redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); boolean result = authCode.equals(realAuthCode); if (result) { return CommonResult.success(null, "验证码校验成功"); diff --git a/mall-tiny-07/src/main/resources/application.yml b/mall-tiny-07/src/main/resources/application.yml index f3eb003d..fe18aecb 100644 --- a/mall-tiny-07/src/main/resources/application.yml +++ b/mall-tiny-07/src/main/resources/application.yml @@ -3,35 +3,45 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) - jedis: + lettuce: pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) + max-active: 8 # 连接池最大连接数 + max-idle: 8 # 连接池最大空闲连接数 + min-idle: 0 # 连接池最小空闲连接数 + max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制 data: elasticsearch: repositories: - enabled: true - cluster-nodes: 127.0.0.1:9300 # es的连接地址及端口号 - cluster-name: elasticsearch # es集群的名称 + enabled: true # 开启ES仓库配置,自动为仓库接口生成实现类 mongodb: - host: localhost # mongodb的连接地址 - port: 27017 # mongodb的连接端口号 - database: mall-port # mongodb的连接的数据库 + host: localhost # MongoDB的连接地址 + port: 27017 # MongoDB的连接端口号 + database: mall-port # MongoDB的连接的数据库 + elasticsearch: + uris: http://localhost:9200 # ES的连接地址及端口号 + rabbitmq: + host: localhost + port: 5672 + virtual-host: /mall + username: mall + password: mall + publisher-returns: true #消息发送到队列确认 + publisher-confirm-type: simple #消息发送到交换器确认 mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml # 自定义redis key @@ -48,3 +58,21 @@ jwt: secret: mySecret #JWT加解密使用的密钥 expiration: 604800 #JWT的超期限时间(60*60*24) tokenHead: Bearer #JWT负载中拿到开头 + +secure: + ignored: + urls: #安全路径白名单 + - /swagger-ui/ + - /swagger-resources/** + - /**/v2/api-docs + - /**/*.html + - /**/*.js + - /**/*.css + - /**/*.png + - /favicon.ico + - /actuator/** + - /druid/** + - /admin/** + - /esProduct/** + - /member/readHistory/** + - /order/** \ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-07/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/mapper/EsProductDao.xml b/mall-tiny-07/src/main/resources/dao/EsProductDao.xml similarity index 100% rename from mall-tiny-08/src/main/resources/mapper/EsProductDao.xml rename to mall-tiny-07/src/main/resources/dao/EsProductDao.xml diff --git a/mall-tiny-07/src/main/resources/generator.properties b/mall-tiny-07/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-07/src/main/resources/generator.properties +++ b/mall-tiny-07/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/generatorConfig.xml b/mall-tiny-07/src/main/resources/generatorConfig.xml index 0c13c575..f3ba5a82 100644 --- a/mall-tiny-07/src/main/resources/generatorConfig.xml +++ b/mall-tiny-07/src/main/resources/generatorConfig.xml @@ -6,59 +6,45 @@ + + + + + - + + + - + - + - + - + - +
- - - -
- - - -
- - - -
- - -
- - -
- - -
\ No newline at end of file diff --git a/mall-tiny-07/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny-07/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny-07/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny-07/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-07/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-07/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-07/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-08/pom.xml b/mall-tiny-08/pom.xml index 35d3b997..4558daf8 100644 --- a/mall-tiny-08/pom.xml +++ b/mall-tiny-08/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-08 - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-08 Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,38 +37,45 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} - + org.springframework.boot spring-boot-starter-data-redis @@ -82,38 +85,32 @@ org.springframework.boot spring-boot-starter-security - - - cn.hutool - hutool-all - 4.5.7 - io.jsonwebtoken jjwt - 0.9.0 + ${jjwt.version} org.springframework.boot spring-boot-starter-data-elasticsearch - + org.springframework.boot spring-boot-starter-data-mongodb - + org.springframework.boot spring-boot-starter-amqp - + - org.projectlombok - lombok - true + io.minio + minio + ${minio.version} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index cd91d663..a5f04b7d 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java index 5ec26f6c..89e32146 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java @@ -14,7 +14,8 @@ import java.util.Map; /** - * JwtToken生成的工具类 + * @auther macrozheng + * @description JwtToken生成的工具类 * JWT token的格式:header.payload.signature * header的格式(算法、token的类型): * {"alg": "HS512","typ": "JWT"} @@ -22,7 +23,8 @@ * {"sub":"wang","created":1489079981393,"exp":1489684781} * signature的生成算法: * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class JwtTokenUtil { @@ -35,7 +37,7 @@ public class JwtTokenUtil { private Long expiration; /** - * 根据负责生成JWT的token + * 根据负载生成JWT的token */ private String generateToken(Map claims) { return Jwts.builder() diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java index 7da9e892..1e16430d 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java @@ -9,8 +9,10 @@ import org.springframework.stereotype.Component; /** - * 取消订单消息的处理者 - * Created by macro on 2018/9/14. + * @auther macrozheng + * @description 取消订单消息的处理者 + * @date 2018/9/14 + * @github https://github.com/macrozheng */ @Component @RabbitListener(queues = "mall.order.cancel") diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java index b4c78ea9..392f1722 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java @@ -11,8 +11,10 @@ import org.springframework.stereotype.Component; /** - * 取消订单消息的发出者 - * Created by macro on 2018/9/14. + * @auther macrozheng + * @description 取消订单消息的发出者 + * @date 2018/9/14 + * @github https://github.com/macrozheng */ @Component public class CancelOrderSender { diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java index abdb7b71..65cc9fcb 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java @@ -19,8 +19,10 @@ import java.io.IOException; /** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description JWT登录授权过滤器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java deleted file mode 100644 index 678406da..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.component; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -/** - * Created by macro on 2018/8/24. - * 订单超时取消并解锁库存的定时器 - */ -@Component -public class OrderTimeOutCancelTask { - private Logger LOGGER = LoggerFactory.getLogger(OrderTimeOutCancelTask.class); - - /** - * cron表达式:Seconds Minutes Hours DayofMonth Month DayofWeek [Year] - * 每10分钟扫描一次,扫描设定超时时间之前下的订单,如果没支付则取消该订单 - */ - @Scheduled(cron = "0 0/10 * ? * ?") - private void cancelTimeOutOrder() { - // TODO: 2019/5/3 此处应调用取消订单的方法,具体查看mall项目源码 - LOGGER.info("取消订单,并根据sku编号释放锁定库存"); - } -} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java index 757df36c..1445038f 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. + * @auther macrozheng + * @description 当未登录或者token失效访问接口时,自定义的返回结果 + * @date 2018/5/14 + * @github https://github.com/macrozheng */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java index bc201cce..769dbfc3 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 当访问接口没有权限时,自定义的返回结果 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java similarity index 86% rename from mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java rename to mall-tiny-08/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java index 3509c52e..5ec8e2a3 100644 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java @@ -7,8 +7,10 @@ import org.springframework.web.filter.CorsFilter; /** - * 全局跨域配置 - * Created by macro on 2019/7/27. + * @auther macrozheng + * @description 全局跨域配置 + * @date 2019/7/27 + * @github https://github.com/macrozheng */ @Configuration public class GlobalCorsConfig { @@ -20,7 +22,7 @@ public class GlobalCorsConfig { public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); //允许所有域名进行跨域调用 - config.addAllowedOrigin("*"); + config.addAllowedOriginPattern("*"); //允许跨越发送cookie config.setAllowCredentials(true); //放行全部原始头信息 @@ -31,4 +33,4 @@ public CorsFilter corsFilter() { source.registerCorsConfiguration("/**", config); return new CorsFilter(source); } -} \ No newline at end of file +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java new file mode 100644 index 00000000..21fa1f30 --- /dev/null +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java @@ -0,0 +1,25 @@ +package com.macro.mall.tiny.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @auther macrozheng + * @description 用于配置白名单资源路径 + * @date 2018/11/5 + * @github https://github.com/macrozheng + */ +@Getter +@Setter +@Configuration +@ConfigurationProperties(prefix = "secure.ignored") +public class IgnoreUrlsConfig { + + private List urls = new ArrayList<>(); + +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java new file mode 100644 index 00000000..2830c98d --- /dev/null +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java @@ -0,0 +1,34 @@ +package com.macro.mall.tiny.config; + +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.service.UmsAdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +/** + * @auther macrozheng + * @description 自定义配置,用于配置如何获取用户信息 + * @date 2022/5/20 + * @github https://github.com/macrozheng + */ +@Configuration +public class MallSecurityConfig { + + @Autowired + private UmsAdminService adminService; + + @Bean + public UserDetailsService userDetailsService() { + //获取登录用户信息 + return username -> { + AdminUserDetails admin = adminService.getAdminByUsername(username); + if (admin != null) { + return admin; + } + throw new UsernameNotFoundException("用户名或密码错误"); + }; + } +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index f4584332..2e4b17c5 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -2,12 +2,16 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration +@EnableTransactionManagement @MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) public class MyBatisConfig { } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java index 35a98adf..299310eb 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java @@ -6,8 +6,10 @@ import org.springframework.context.annotation.Configuration; /** - * 消息队列配置 - * Created by macro on 2018/9/14. + * @auther macrozheng + * @description 消息队列配置 + * @date 2018/9/14 + * @github https://github.com/macrozheng */ @Configuration public class RabbitMqConfig { @@ -17,7 +19,7 @@ public class RabbitMqConfig { */ @Bean DirectExchange orderDirect() { - return (DirectExchange) ExchangeBuilder + return ExchangeBuilder .directExchange(QueueEnum.QUEUE_ORDER_CANCEL.getExchange()) .durable(true) .build(); @@ -28,7 +30,7 @@ DirectExchange orderDirect() { */ @Bean DirectExchange orderTtlDirect() { - return (DirectExchange) ExchangeBuilder + return ExchangeBuilder .directExchange(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getExchange()) .durable(true) .build(); diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/RedisConfig.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/RedisConfig.java new file mode 100644 index 00000000..c93b29ac --- /dev/null +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/RedisConfig.java @@ -0,0 +1,71 @@ +package com.macro.mall.tiny.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 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; + +/** + * @auther macrozheng + * @description Redis配置类 + * @date 2020/3/2 + * @github https://github.com/macrozheng + */ +@EnableCaching +@Configuration +public class RedisConfig { + + /** + * redis数据库自定义key + */ + public static final String REDIS_KEY_DATABASE="mall"; + + @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); + } + +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java index 5771cb2b..70dd99ba 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java @@ -3,9 +3,7 @@ import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.dto.AdminUserDetails; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; import com.macro.mall.tiny.service.UmsAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -17,58 +15,50 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import java.util.List; - /** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description SpringSecurity的配置 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled=true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; +public class SecurityConfig { @Autowired private RestfulAccessDeniedHandler restfulAccessDeniedHandler; @Autowired private RestAuthenticationEntryPoint restAuthenticationEntryPoint; + @Autowired + private IgnoreUrlsConfig ignoreUrlsConfig; - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity + .authorizeRequests(); + //不需要保护的资源路径允许访问 + for (String url : ignoreUrlsConfig.getUrls()) { + registry.antMatchers(url).permitAll(); + } + //允许跨域请求的OPTIONS请求 + registry.antMatchers(HttpMethod.OPTIONS) + .permitAll(); httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf .disable() .sessionManagement()// 基于token,所以不需要session .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login", "/admin/register")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers("/esProduct/**","/member/readHistory/**","/order/**")// 测试时放开 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() -// .antMatchers("/**")//测试时全部运行访问 -// .permitAll() .anyRequest()// 除上面外的所有请求全部需要鉴权认证 .authenticated(); // 禁用缓存 @@ -79,12 +69,7 @@ protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.exceptionHandling() .accessDeniedHandler(restfulAccessDeniedHandler) .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); + return httpSecurity.build(); } @Bean @@ -92,28 +77,9 @@ public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - UmsAdmin admin = adminService.getAdminByUsername(username); - if (admin != null) { - List permissionList = adminService.getPermissionList(admin.getId()); - return new AdminUserDetails(admin,permissionList); - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - @Bean public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ return new JwtAuthenticationTokenFilter(); } - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java deleted file mode 100644 index 54c5f4f8..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; - -/** - * 定时任务配置 - * Created by macro on 2019/4/8. - */ -@Configuration -@EnableScheduling -public class SpringTaskConfig { -} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 8946105a..930cac51 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,34 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; 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 springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置(带认证) + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) .paths(PathSelectors.any()) .build() @@ -41,14 +46,14 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } - private List securitySchemes() { + private List securitySchemes() { //设置请求头信息 - List result = new ArrayList<>(); + List result = new ArrayList<>(); ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); result.add(apiKey); return result; @@ -61,7 +66,7 @@ private List securityContexts() { return result; } - private SecurityContext getContextByPath(String pathRegex){ + private SecurityContext getContextByPath(String pathRegex) { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex(pathRegex)) @@ -76,4 +81,37 @@ private List defaultAuth() { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/EsProductController.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/EsProductController.java index 5ea0b066..7e318e78 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/EsProductController.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/EsProductController.java @@ -6,6 +6,7 @@ import com.macro.mall.tiny.service.EsProductService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.stereotype.Controller; @@ -14,11 +15,14 @@ import java.util.List; /** - * 搜索商品管理Controller - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品管理Controller + * @date 2018/6/19 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "EsProductController", description = "搜索商品管理") +@Api(tags = "EsProductController") +@Tag(name = "EsProductController", description = "搜索商品管理") @RequestMapping("/esProduct") public class EsProductController { @Autowired @@ -69,5 +73,4 @@ public CommonResult> search(@RequestParam(required = false Page esProductPage = esProductService.search(keyword, pageNum, pageSize); return CommonResult.success(CommonPage.restPage(esProductPage)); } - } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java index 12b060aa..77e6727e 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java @@ -5,6 +5,7 @@ import com.macro.mall.tiny.service.MemberReadHistoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -12,11 +13,14 @@ import java.util.List; /** - * 会员商品浏览记录管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员商品浏览记录管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "MemberReadHistoryController", description = "会员商品浏览记录管理") +@Api(tags = "MemberReadHistoryController") +@Tag(name = "MemberReadHistoryController", description = "会员商品浏览记录管理") @RequestMapping("/member/readHistory") public class MemberReadHistoryController { @Autowired diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/MinioController.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/MinioController.java new file mode 100644 index 00000000..225097c6 --- /dev/null +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/MinioController.java @@ -0,0 +1,121 @@ +package com.macro.mall.tiny.controller; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.json.JSONUtil; +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.dto.BucketPolicyConfigDto; +import com.macro.mall.tiny.dto.MinioUploadDto; +import io.minio.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @auther macrozheng + * @description MinIO对象存储管理Controller + * @date 2019/12/25 + * @github https://github.com/macrozheng + */ +@Controller +@Api(tags = "MinioController") +@Tag(name = "MinioController", description = "MinIO对象存储管理") +@RequestMapping("/minio") +public class MinioController { + + private static final Logger LOGGER = LoggerFactory.getLogger(MinioController.class); + @Value("${minio.endpoint}") + private String ENDPOINT; + @Value("${minio.bucketName}") + private String BUCKET_NAME; + @Value("${minio.accessKey}") + private String ACCESS_KEY; + @Value("${minio.secretKey}") + private String SECRET_KEY; + + @ApiOperation("文件上传") + @RequestMapping(value = "/upload", method = RequestMethod.POST) + @ResponseBody + public CommonResult upload(@RequestPart("file") MultipartFile file) { + try { + //创建一个MinIO的Java客户端 + MinioClient minioClient =MinioClient.builder() + .endpoint(ENDPOINT) + .credentials(ACCESS_KEY,SECRET_KEY) + .build(); + boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(BUCKET_NAME).build()); + if (isExist) { + LOGGER.info("存储桶已经存在!"); + } else { + //创建存储桶并设置只读权限 + minioClient.makeBucket(MakeBucketArgs.builder().bucket(BUCKET_NAME).build()); + BucketPolicyConfigDto bucketPolicyConfigDto = createBucketPolicyConfigDto(BUCKET_NAME); + SetBucketPolicyArgs setBucketPolicyArgs = SetBucketPolicyArgs.builder() + .bucket(BUCKET_NAME) + .config(JSONUtil.toJsonStr(bucketPolicyConfigDto)) + .build(); + minioClient.setBucketPolicy(setBucketPolicyArgs); + } + String filename = file.getOriginalFilename(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + // 设置存储对象名称 + String objectName = sdf.format(new Date()) + "/" + filename; + // 使用putObject上传一个文件到存储桶中 + PutObjectArgs putObjectArgs = PutObjectArgs.builder() + .bucket(BUCKET_NAME) + .object(objectName) + .contentType(file.getContentType()) + .stream(file.getInputStream(), file.getSize(), ObjectWriteArgs.MIN_MULTIPART_SIZE).build(); + minioClient.putObject(putObjectArgs); + LOGGER.info("文件上传成功!"); + MinioUploadDto minioUploadDto = new MinioUploadDto(); + minioUploadDto.setName(filename); + minioUploadDto.setUrl(ENDPOINT + "/" + BUCKET_NAME + "/" + objectName); + return CommonResult.success(minioUploadDto); + } catch (Exception e) { + e.printStackTrace(); + LOGGER.info("上传发生错误: {}!", e.getMessage()); + } + return CommonResult.failed(); + } + + /** + * 创建存储桶的访问策略,设置为只读权限 + */ + private BucketPolicyConfigDto createBucketPolicyConfigDto(String bucketName) { + BucketPolicyConfigDto.Statement statement = BucketPolicyConfigDto.Statement.builder() + .Effect("Allow") + .Principal("*") + .Action("s3:GetObject") + .Resource("arn:aws:s3:::"+bucketName+"/*.**").build(); + return BucketPolicyConfigDto.builder() + .Version("2012-10-17") + .Statement(CollUtil.toList(statement)) + .build(); + } + + @ApiOperation("文件删除") + @RequestMapping(value = "/delete", method = RequestMethod.POST) + @ResponseBody + public CommonResult delete(@RequestParam("objectName") String objectName) { + try { + MinioClient minioClient = MinioClient.builder() + .endpoint(ENDPOINT) + .credentials(ACCESS_KEY,SECRET_KEY) + .build(); + minioClient.removeObject(RemoveObjectArgs.builder().bucket(BUCKET_NAME).object(objectName).build()); + return CommonResult.success(null); + } catch (Exception e) { + e.printStackTrace(); + } + return CommonResult.failed(); + } +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java index b7eccf9c..1e08c396 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.OmsPortalOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 订单管理Controller - * Created by macro on 2018/8/30. + * @auther macrozheng + * @description 订单管理Controller + * @date 2018/8/30 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "OmsPortalOrderController", description = "订单管理") +@Api(tags = "OmsPortalOrderController") +@Tag(name = "OmsPortalOrderController", description = "订单管理") @RequestMapping("/order") public class OmsPortalOrderController { @Autowired diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 0dee32a4..b75a2598 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +20,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired @@ -34,7 +38,7 @@ public class PmsBrandController { @ApiOperation("获取所有品牌列表") @RequestMapping(value = "listAll", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:listAll')") public CommonResult> getBrandList() { return CommonResult.success(brandService.listAllBrand()); } @@ -42,7 +46,7 @@ public CommonResult> getBrandList() { @ApiOperation("添加品牌") @RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:create')") + @PreAuthorize("hasAuthority('brand:create')") public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { CommonResult commonResult; int count = brandService.createBrand(pmsBrand); @@ -59,7 +63,7 @@ public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { @ApiOperation("更新指定id品牌信息") @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:update')") + @PreAuthorize("hasAuthority('brand:update')") public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { CommonResult commonResult; int count = brandService.updateBrand(id, pmsBrandDto); @@ -76,7 +80,7 @@ public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBra @ApiOperation("删除指定id的品牌") @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:delete')") + @PreAuthorize("hasAuthority('brand:delete')") public CommonResult deleteBrand(@PathVariable("id") Long id) { int count = brandService.deleteBrand(id); if (count == 1) { @@ -91,7 +95,7 @@ public CommonResult deleteBrand(@PathVariable("id") Long id) { @ApiOperation("分页查询品牌列表") @RequestMapping(value = "/list", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:list')") public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") @ApiParam("页码") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "3") @@ -103,7 +107,6 @@ public CommonResult> listBrand(@RequestParam(value = "pageN @ApiOperation("获取指定id的品牌详情") @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") public CommonResult brand(@PathVariable("id") Long id) { return CommonResult.success(brandService.getBrand(id)); } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index d95f9683..de2b21fc 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -1,28 +1,32 @@ package com.macro.mall.tiny.controller; import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.List; import java.util.Map; /** - * 后台用户管理 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { @Autowired @@ -32,22 +36,12 @@ public class UmsAdminController { @Value("${jwt.tokenHead}") private String tokenHead; - @ApiOperation(value = "用户注册") - @RequestMapping(value = "/register", method = RequestMethod.POST) - @ResponseBody - public CommonResult register(@RequestBody UmsAdmin umsAdminParam, BindingResult result) { - UmsAdmin umsAdmin = adminService.register(umsAdminParam); - if (umsAdmin == null) { - CommonResult.failed(); - } - return CommonResult.success(umsAdmin); - } @ApiOperation(value = "登录以后返回token") @RequestMapping(value = "/login", method = RequestMethod.POST) @ResponseBody - public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) { - String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword()); + public CommonResult login(@RequestParam String username, @RequestParam String password) { + String token = adminService.login(username, password); if (token == null) { return CommonResult.validateFailed("用户名或密码错误"); } @@ -57,11 +51,11 @@ public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, Bi return CommonResult.success(tokenMap); } - @ApiOperation("获取用户所有权限(包括+-权限)") - @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET) + @ApiOperation(value = "登录以后返回token") + @RequestMapping(value = "/resourceList", method = RequestMethod.POST) @ResponseBody - public CommonResult> getPermissionList(@PathVariable Long adminId) { - List permissionList = adminService.getPermissionList(adminId); - return CommonResult.success(permissionList); + public CommonResult> resourceList() { + List resourceList = adminService.getResourceList(); + return CommonResult.success(resourceList); } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java index c936c689..5825367b 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.UmsMemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员登录注册管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") +@Api(tags = "UmsMemberController") +@Tag(name = "UmsMemberController", description = "会员登录注册管理") @RequestMapping("/sso") public class UmsMemberController { @Autowired diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java index 7a9a94e2..d2a58a41 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 搜索系统中的商品管理自定义Dao - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索系统中的商品管理自定义Dao + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductDao { List getAllEsProductList(@Param("id") Long id); diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java deleted file mode 100644 index 50f00f7c..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.dao; - - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 后台用户与角色管理自定义Dao - * Created by macro on 2018/10/8. - */ -public interface UmsAdminRoleRelationDao { - - /** - * 获取用户所有权限(包括+-权限) - */ - List getPermissionList(@Param("adminId") Long adminId); -} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java new file mode 100644 index 00000000..c26f1b96 --- /dev/null +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java @@ -0,0 +1,61 @@ +package com.macro.mall.tiny.domain; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @auther macrozheng + * @description SpringSecurity用户信息封装类 + * @date 2020/10/15 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Builder +public class AdminUserDetails implements UserDetails { + private String username; + private String password; + private List authorityList; + @Override + public Collection getAuthorities() { + return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); + } + + @Override + public String getPassword() { + return this.password; + } + + @Override + public String getUsername() { + return this.username; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/domain/UmsResource.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/domain/UmsResource.java new file mode 100644 index 00000000..baf9890d --- /dev/null +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/domain/UmsResource.java @@ -0,0 +1,42 @@ +package com.macro.mall.tiny.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + *

+ * 后台资源表 + *

+ * + * @author macro + * @since 2020-08-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="UmsResource对象", description="后台资源表") +@Builder +public class UmsResource{ + + private Long id; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "资源名称") + private String name; + + @ApiModelProperty(value = "资源URL") + private String url; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "资源分类ID") + private Long categoryId; + +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java deleted file mode 100644 index bd712424..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * SpringSecurity需要的用户详情 - * Created by macro on 2018/4/26. - */ -public class AdminUserDetails implements UserDetails { - private UmsAdmin umsAdmin; - private List permissionList; - public AdminUserDetails(UmsAdmin umsAdmin, List permissionList) { - this.umsAdmin = umsAdmin; - this.permissionList = permissionList; - } - - @Override - public Collection getAuthorities() { - //返回当前用户的权限 - return permissionList.stream() - .filter(permission -> permission.getValue()!=null) - .map(permission ->new SimpleGrantedAuthority(permission.getValue())) - .collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return umsAdmin.getPassword(); - } - - @Override - public String getUsername() { - return umsAdmin.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return umsAdmin.getStatus().equals(1); - } -} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/BucketPolicyConfigDto.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/BucketPolicyConfigDto.java new file mode 100644 index 00000000..e6acf2bd --- /dev/null +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/BucketPolicyConfigDto.java @@ -0,0 +1,33 @@ +package com.macro.mall.tiny.dto; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * @auther macrozheng + * @description Minio Bucket访问策略配置 + * @date 2020/8/11 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode +@Builder +public class BucketPolicyConfigDto { + + private String Version; + private List Statement; + + @Data + @EqualsAndHashCode + @Builder + public static class Statement { + private String Effect; + private String Principal; + private String Action; + private String Resource; + + } +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java new file mode 100644 index 00000000..eee2d35d --- /dev/null +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java @@ -0,0 +1,20 @@ +package com.macro.mall.tiny.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @auther macrozheng + * @description 文件上传返回结果 + * @date 2019/12/25 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode +public class MinioUploadDto { + @ApiModelProperty("文件访问URL") + private String url; + @ApiModelProperty("文件名称") + private String name; +} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/OrderParam.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/OrderParam.java index 88fa55c9..2c959ea7 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/OrderParam.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/OrderParam.java @@ -1,9 +1,14 @@ package com.macro.mall.tiny.dto; +import lombok.Data; + /** - * 生成订单时传入的参数 - * Created by macro on 2018/8/30. + * @auther macrozheng + * @description 生成订单时传入的参数 + * @date 2018/8/30 + * @github https://github.com/macrozheng */ +@Data public class OrderParam { //收货地址id private Long memberReceiveAddressId; @@ -13,36 +18,4 @@ public class OrderParam { private Integer useIntegration; //支付方式 private Integer payType; - - public Long getMemberReceiveAddressId() { - return memberReceiveAddressId; - } - - public void setMemberReceiveAddressId(Long memberReceiveAddressId) { - this.memberReceiveAddressId = memberReceiveAddressId; - } - - public Long getCouponId() { - return couponId; - } - - public void setCouponId(Long couponId) { - this.couponId = couponId; - } - - public Integer getPayType() { - return payType; - } - - public void setPayType(Integer payType) { - this.payType = payType; - } - - public Integer getUseIntegration() { - return useIntegration; - } - - public void setUseIntegration(Integer useIntegration) { - this.useIntegration = useIntegration; - } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java index 20ac4683..12df3136 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java @@ -3,8 +3,10 @@ import lombok.Getter; /** - * 消息队列枚举配置 - * Created by macro on 2018/9/14. + * @auther macrozheng + * @description 消息队列枚举配置 + * @date 2018/9/14 + * @github https://github.com/macrozheng */ @Getter public enum QueueEnum { @@ -18,7 +20,7 @@ public enum QueueEnum { QUEUE_TTL_ORDER_CANCEL("mall.order.direct.ttl", "mall.order.cancel.ttl", "mall.order.cancel.ttl"); /** - * 交换名称 + * 交换机名称 */ private String exchange; /** diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java deleted file mode 100644 index 94e9396a..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.validator.constraints.NotEmpty; - -/** - * 用户登录参数 - * Created by macro on 2018/4/26. - */ -public class UmsAdminLoginParam { - @ApiModelProperty(value = "用户名", required = true) - @NotEmpty(message = "用户名不能为空") - private String username; - @ApiModelProperty(value = "密码", required = true) - @NotEmpty(message = "密码不能为空") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java index 617584fb..408d4737 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -6,15 +6,15 @@ import org.apache.ibatis.annotations.Param; public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); + long countByExample(PmsBrandExample example); int deleteByExample(PmsBrandExample example); int deleteByPrimaryKey(Long id); - int insert(PmsBrand record); + int insert(PmsBrand row); - int insertSelective(PmsBrand record); + int insertSelective(PmsBrand row); List selectByExampleWithBLOBs(PmsBrandExample example); @@ -22,15 +22,15 @@ public interface PmsBrandMapper { PmsBrand selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByPrimaryKeySelective(PmsBrand record); + int updateByPrimaryKeySelective(PmsBrand row); - int updateByPrimaryKeyWithBLOBs(PmsBrand record); + int updateByPrimaryKeyWithBLOBs(PmsBrand row); - int updateByPrimaryKey(PmsBrand record); + int updateByPrimaryKey(PmsBrand row); } \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java index 4e4a1108..c7e5880b 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -11,7 +11,7 @@ public class PmsBrandExample { protected List oredCriteria; public PmsBrandExample() { - oredCriteria = new ArrayList(); + oredCriteria = new ArrayList<>(); } public void setOrderByClause(String orderByClause) { @@ -68,7 +68,7 @@ protected abstract static class GeneratedCriteria { protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -746,7 +746,6 @@ public Criteria andBigPicNotBetween(String value1, String value2) { } public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java index 3a8e6839..88ad394b 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java @@ -1,19 +1,27 @@ package com.macro.mall.tiny.nosql.elasticsearch.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; +import org.springframework.data.elasticsearch.annotations.Setting; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; /** - * 搜索中的商品信息 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品的信息 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ -@Document(indexName = "pms", type = "product",shards = 1,replicas = 0) +@Data +@EqualsAndHashCode +@Document(indexName = "pms") +@Setting(shards = 1,replicas = 0) public class EsProduct implements Serializable { private static final long serialVersionUID = -1L; @Id @@ -42,148 +50,4 @@ public class EsProduct implements Serializable { private Integer sort; @Field(type =FieldType.Nested) private List attrValueList; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getProductSn() { - return productSn; - } - - public void setProductSn(String productSn) { - this.productSn = productSn; - } - - public Long getBrandId() { - return brandId; - } - - public void setBrandId(Long brandId) { - this.brandId = brandId; - } - - public String getBrandName() { - return brandName; - } - - public void setBrandName(String brandName) { - this.brandName = brandName; - } - - public Long getProductCategoryId() { - return productCategoryId; - } - - public void setProductCategoryId(Long productCategoryId) { - this.productCategoryId = productCategoryId; - } - - public String getProductCategoryName() { - return productCategoryName; - } - - public void setProductCategoryName(String productCategoryName) { - this.productCategoryName = productCategoryName; - } - - public String getPic() { - return pic; - } - - public void setPic(String pic) { - this.pic = pic; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSubTitle() { - return subTitle; - } - - public void setSubTitle(String subTitle) { - this.subTitle = subTitle; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public Integer getSale() { - return sale; - } - - public void setSale(Integer sale) { - this.sale = sale; - } - - public Integer getNewStatus() { - return newStatus; - } - - public void setNewStatus(Integer newStatus) { - this.newStatus = newStatus; - } - - public Integer getRecommandStatus() { - return recommandStatus; - } - - public void setRecommandStatus(Integer recommandStatus) { - this.recommandStatus = recommandStatus; - } - - public Integer getStock() { - return stock; - } - - public void setStock(Integer stock) { - this.stock = stock; - } - - public Integer getPromotionType() { - return promotionType; - } - - public void setPromotionType(Integer promotionType) { - this.promotionType = promotionType; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public List getAttrValueList() { - return attrValueList; - } - - public void setAttrValueList(List attrValueList) { - this.attrValueList = attrValueList; - } - - public String getKeywords() { - return keywords; - } - - public void setKeywords(String keywords) { - this.keywords = keywords; - } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java index 676f6e23..ab95faa6 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java @@ -1,14 +1,20 @@ package com.macro.mall.tiny.nosql.elasticsearch.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; import java.io.Serializable; /** - * 搜索中的商品属性信息 - * Created by macro on 2018/6/27. + * @auther macrozheng + * @description 搜索商品的属性信息 + * @date 2018/6/27 + * @github https://github.com/macrozheng */ +@Data +@EqualsAndHashCode public class EsProductAttributeValue implements Serializable { private static final long serialVersionUID = 1L; private Long id; @@ -21,43 +27,4 @@ public class EsProductAttributeValue implements Serializable { //属性名称 @Field(type=FieldType.Keyword) private String name; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getProductAttributeId() { - return productAttributeId; - } - - public void setProductAttributeId(Long productAttributeId) { - this.productAttributeId = productAttributeId; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java index d874dd7f..21430576 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java @@ -6,8 +6,10 @@ import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; /** - * 商品ES操作类 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 商品ES操作类 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductRepository extends ElasticsearchRepository { /** diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java index 61fbe867..4b9c99f6 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java @@ -1,5 +1,7 @@ package com.macro.mall.tiny.nosql.mongodb.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; @@ -7,9 +9,13 @@ import java.util.Date; /** - * 用户商品浏览历史记录 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 用户商品浏览历史记录 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ +@Data +@EqualsAndHashCode @Document public class MemberReadHistory { @Id @@ -25,84 +31,4 @@ public class MemberReadHistory { private String productSubTitle; private String productPrice; private Date createTime; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public Long getMemberId() { - return memberId; - } - - public void setMemberId(Long memberId) { - this.memberId = memberId; - } - - public String getMemberNickname() { - return memberNickname; - } - - public void setMemberNickname(String memberNickname) { - this.memberNickname = memberNickname; - } - - public String getMemberIcon() { - return memberIcon; - } - - public void setMemberIcon(String memberIcon) { - this.memberIcon = memberIcon; - } - - public Long getProductId() { - return productId; - } - - public void setProductId(Long productId) { - this.productId = productId; - } - - public String getProductName() { - return productName; - } - - public void setProductName(String productName) { - this.productName = productName; - } - - public String getProductPic() { - return productPic; - } - - public void setProductPic(String productPic) { - this.productPic = productPic; - } - - public String getProductSubTitle() { - return productSubTitle; - } - - public void setProductSubTitle(String productSubTitle) { - this.productSubTitle = productSubTitle; - } - - public String getProductPrice() { - return productPrice; - } - - public void setProductPrice(String productPrice) { - this.productPrice = productPrice; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java index 10424bc2..229e10e8 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java @@ -7,8 +7,10 @@ import java.util.List; /** - * 会员商品浏览历史Repository - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员商品浏览历史Repository + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface MemberReadHistoryRepository extends MongoRepository { /** diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/EsProductService.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/EsProductService.java index f2c15434..ebb9e313 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/EsProductService.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/EsProductService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 商品搜索管理Service - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 商品搜索管理Service + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductService { /** diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java index b81903b5..45159dc7 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 会员浏览记录管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员浏览记录管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface MemberReadHistoryService { /** diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java index dc28b2a2..0ac7bcf7 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java @@ -5,8 +5,10 @@ import org.springframework.transaction.annotation.Transactional; /** - * 前台订单管理Service - * Created by macro on 2018/8/30. + * @auther macrozheng + * @description 前台订单管理Service + * @date 2018/8/30 + * @github https://github.com/macrozheng */ public interface OmsPortalOrderService { diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/RedisService.java index 191ab73b..370c456c 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/RedisService.java @@ -1,35 +1,184 @@ package com.macro.mall.tiny.service; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作Service + * @date 2020/3/3 + * @github https://github.com/macrozheng */ public interface RedisService { + + /** + * 保存属性 + */ + void set(String key, Object value, long time); + + /** + * 保存属性 + */ + void set(String key, Object value); + + /** + * 获取属性 + */ + Object get(String key); + + /** + * 删除属性 + */ + Boolean del(String key); + + /** + * 批量删除属性 + */ + Long del(List keys); + + /** + * 设置过期时间 + */ + Boolean expire(String key, long time); + + /** + * 获取过期时间 + */ + Long getExpire(String key); + + /** + * 判断是否有该属性 + */ + Boolean hasKey(String key); + + /** + * 按delta递增 + */ + Long incr(String key, long delta); + + /** + * 按delta递减 + */ + Long decr(String key, long delta); + + /** + * 获取Hash结构中的属性 + */ + Object hGet(String key, String hashKey); + + /** + * 向Hash结构中放入一个属性 + */ + Boolean hSet(String key, String hashKey, Object value, long time); + + /** + * 向Hash结构中放入一个属性 + */ + void hSet(String key, String hashKey, Object value); + + /** + * 直接获取整个Hash结构 + */ + Map hGetAll(String key); + /** - * 存储数据 + * 直接设置整个Hash结构 */ - void set(String key, String value); + Boolean hSetAll(String key, Map map, long time); /** - * 获取数据 + * 直接设置整个Hash结构 */ - String get(String key); + void hSetAll(String key, Map map); /** - * 设置超期时间 + * 删除Hash结构中的属性 */ - boolean expire(String key, long expire); + void hDel(String key, Object... hashKey); /** - * 删除数据 + * 判断Hash结构中是否有该属性 */ - void remove(String key); + Boolean hHasKey(String key, String hashKey); /** - * 自增操作 - * @param delta 自增步长 + * Hash结构中属性递增 */ - Long increment(String key, long delta); + Long hIncr(String key, String hashKey, Long delta); -} + /** + * Hash结构中属性递减 + */ + Long hDecr(String key, String hashKey, Long delta); + + /** + * 获取Set结构 + */ + Set sMembers(String key); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, Object... values); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, long time, Object... values); + + /** + * 是否为Set中的属性 + */ + Boolean sIsMember(String key, Object value); + + /** + * 获取Set结构的长度 + */ + Long sSize(String key); + + /** + * 删除Set结构中的属性 + */ + Long sRemove(String key, Object... values); + + /** + * 获取List结构中的属性 + */ + List lRange(String key, long start, long end); + + /** + * 获取List结构的长度 + */ + Long lSize(String key); + + /** + * 根据索引获取List中的属性 + */ + Object lIndex(String key, long index); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value, long time); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Object... values); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Long time, Object... values); + + /** + * 从List结构中移除属性 + */ + Long lRemove(String key, long count, Object value); +} \ No newline at end of file diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 08a9d539..5180e8e9 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -1,35 +1,29 @@ package com.macro.mall.tiny.service; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import java.util.List; /** - * 后台管理员Service - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service + * @date 2020/10/15 + * @github https://github.com/macrozheng */ public interface UmsAdminService { /** - * 根据用户名获取后台管理员 + * 根据用户名获取用户信息 */ - UmsAdmin getAdminByUsername(String username); + AdminUserDetails getAdminByUsername(String username); /** - * 注册功能 + * 获取所以权限列表 */ - UmsAdmin register(UmsAdmin umsAdminParam); + List getResourceList(); /** - * 登录功能 - * @param username 用户名 - * @param password 密码 - * @return 生成的JWT的token + * 用户名密码登录 */ String login(String username, String password); - - /** - * 获取用户所有权限(包括角色权限和+-权限) - */ - List getPermissionList(Long adminId); } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java index f9fd8ac9..8cf694d3 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.common.api.CommonResult; /** - * 会员管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface UmsMemberService { diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java index 44939caa..98891874 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java @@ -19,8 +19,10 @@ /** - * 商品搜索管理Service实现类 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品管理Service实现类 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ @Service public class EsProductServiceImpl implements EsProductService { @@ -29,7 +31,6 @@ public class EsProductServiceImpl implements EsProductService { private EsProductDao productDao; @Autowired private EsProductRepository productRepository; - @Override public int importAll() { List esProductList = productDao.getAllEsProductList(null); diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java index 977a331e..1dba57c7 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * 会员浏览记录管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员浏览记录管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class MemberReadHistoryServiceImpl implements MemberReadHistoryService { diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java index e2ccf246..f8ff5323 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java @@ -10,8 +10,10 @@ import org.springframework.stereotype.Service; /** - * 前台订单管理Service - * Created by macro on 2018/8/30. + * @auther macrozheng + * @description 前台订单管理Service + * @date 2018/8/30 + * @github https://github.com/macrozheng */ @Service public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java index cb9d7e0c..8ff149fd 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java @@ -2,42 +2,200 @@ import com.macro.mall.tiny.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; /** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作实现类 + * @date 2020/3/3 + * @github https://github.com/macrozheng */ @Service public class RedisServiceImpl implements RedisService { @Autowired - private StringRedisTemplate stringRedisTemplate; + private RedisTemplate redisTemplate; @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); + public void set(String key, Object value, long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); + public void set(String key, Object value) { + redisTemplate.opsForValue().set(key, value); } @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); + public Object get(String key) { + return redisTemplate.opsForValue().get(key); } @Override - public void remove(String key) { - stringRedisTemplate.delete(key); + public Boolean del(String key) { + return redisTemplate.delete(key); } @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); + public Long del(List keys) { + return redisTemplate.delete(keys); + } + + @Override + public Boolean expire(String key, long time) { + return redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + + @Override + public Long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + @Override + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + @Override + public Long incr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, delta); + } + + @Override + public Long decr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, -delta); + } + + @Override + public Object hGet(String key, String hashKey) { + return redisTemplate.opsForHash().get(key, hashKey); + } + + @Override + public Boolean hSet(String key, String hashKey, Object value, long time) { + redisTemplate.opsForHash().put(key, hashKey, value); + return expire(key, time); + } + + @Override + public void hSet(String key, String hashKey, Object value) { + redisTemplate.opsForHash().put(key, hashKey, value); + } + + @Override + public Map hGetAll(String key) { + return redisTemplate.opsForHash().entries(key); + } + + @Override + public Boolean hSetAll(String key, Map map, long time) { + redisTemplate.opsForHash().putAll(key, map); + return expire(key, time); + } + + @Override + public void hSetAll(String key, Map map) { + redisTemplate.opsForHash().putAll(key, map); + } + + @Override + public void hDel(String key, Object... hashKey) { + redisTemplate.opsForHash().delete(key, hashKey); + } + + @Override + public Boolean hHasKey(String key, String hashKey) { + return redisTemplate.opsForHash().hasKey(key, hashKey); + } + + @Override + public Long hIncr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, delta); + } + + @Override + public Long hDecr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, -delta); + } + + @Override + public Set sMembers(String key) { + return redisTemplate.opsForSet().members(key); + } + + @Override + public Long sAdd(String key, Object... values) { + return redisTemplate.opsForSet().add(key, values); + } + + @Override + public Long sAdd(String key, long time, Object... values) { + Long count = redisTemplate.opsForSet().add(key, values); + expire(key, time); + return count; + } + + @Override + public Boolean sIsMember(String key, Object value) { + return redisTemplate.opsForSet().isMember(key, value); + } + + @Override + public Long sSize(String key) { + return redisTemplate.opsForSet().size(key); + } + + @Override + public Long sRemove(String key, Object... values) { + return redisTemplate.opsForSet().remove(key, values); + } + + @Override + public List lRange(String key, long start, long end) { + return redisTemplate.opsForList().range(key, start, end); + } + + @Override + public Long lSize(String key) { + return redisTemplate.opsForList().size(key); + } + + @Override + public Object lIndex(String key, long index) { + return redisTemplate.opsForList().index(key, index); + } + + @Override + public Long lPush(String key, Object value) { + return redisTemplate.opsForList().rightPush(key, value); + } + + @Override + public Long lPush(String key, Object value, long time) { + Long index = redisTemplate.opsForList().rightPush(key, value); + expire(key, time); + return index; + } + + @Override + public Long lPushAll(String key, Object... values) { + return redisTemplate.opsForList().rightPushAll(key, values); + } + + @Override + public Long lPushAll(String key, Long time, Object... values) { + Long count = redisTemplate.opsForList().rightPushAll(key, values); + expire(key, time); + return count; + } + + @Override + public Long lRemove(String key, long count, Object value) { + return redisTemplate.opsForList().remove(key, count, value); } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 4f0a052d..2f3236e1 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -1,87 +1,107 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.collection.CollUtil; import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.dao.UmsAdminRoleRelationDao; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.mapper.UmsAdminMapper; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import java.util.Date; +import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * UmsAdminService实现类 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service实现类 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ +@Slf4j @Service public class UmsAdminServiceImpl implements UmsAdminService { - private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class); - @Autowired - private UserDetailsService userDetailsService; + /** + * 存放默认用户信息 + */ + private List adminUserDetailsList = new ArrayList<>(); + /** + * 存放默认资源信息 + */ + private List resourceList = new ArrayList<>(); @Autowired private JwtTokenUtil jwtTokenUtil; @Autowired private PasswordEncoder passwordEncoder; - @Value("${jwt.tokenHead}") - private String tokenHead; - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminRoleRelationDao adminRoleRelationDao; + @PostConstruct + private void init(){ + adminUserDetailsList.add(AdminUserDetails.builder() + .username("admin") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:create","brand:update","brand:delete","brand:list","brand:listAll")) + .build()); + adminUserDetailsList.add(AdminUserDetails.builder() + .username("macro") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:listAll")) + .build()); + resourceList.add(UmsResource.builder() + .id(1L) + .name("brand:create") + .url("/brand/create") + .build()); + resourceList.add(UmsResource.builder() + .id(2L) + .name("brand:update") + .url("/brand/update/**") + .build()); + resourceList.add(UmsResource.builder() + .id(3L) + .name("brand:delete") + .url("/brand/delete/**") + .build()); + resourceList.add(UmsResource.builder() + .id(4L) + .name("brand:list") + .url("/brand/list") + .build()); + resourceList.add(UmsResource.builder() + .id(5L) + .name("brand:listAll") + .url("/brand/listAll") + .build()); + } @Override - public UmsAdmin getAdminByUsername(String username) { - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(username); - List adminList = adminMapper.selectByExample(example); - if (adminList != null && adminList.size() > 0) { - return adminList.get(0); + public AdminUserDetails getAdminByUsername(String username) { + List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(findList)){ + return findList.get(0); } return null; } @Override - public UmsAdmin register(UmsAdmin umsAdminParam) { - UmsAdmin umsAdmin = new UmsAdmin(); - BeanUtils.copyProperties(umsAdminParam, umsAdmin); - umsAdmin.setCreateTime(new Date()); - umsAdmin.setStatus(1); - //查询是否有相同用户名的用户 - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername()); - List umsAdminList = adminMapper.selectByExample(example); - if (umsAdminList.size() > 0) { - return null; - } - //将密码进行加密操作 - String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); - umsAdmin.setPassword(encodePassword); - adminMapper.insert(umsAdmin); - return umsAdmin; + public List getResourceList() { + return resourceList; } @Override public String login(String username, String password) { String token = null; try { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UserDetails userDetails = getAdminByUsername(username); + if(userDetails==null){ + return token; + } if (!passwordEncoder.matches(password, userDetails.getPassword())) { throw new BadCredentialsException("密码不正确"); } @@ -89,14 +109,8 @@ public String login(String username, String password) { SecurityContextHolder.getContext().setAuthentication(authentication); token = jwtTokenUtil.generateToken(userDetails); } catch (AuthenticationException e) { - LOGGER.warn("登录异常:{}", e.getMessage()); + log.warn("登录异常:{}", e.getMessage()); } return token; } - - - @Override - public List getPermissionList(Long adminId) { - return adminRoleRelationDao.getPermissionList(adminId); - } } diff --git a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java index 06378693..6c6aeb7f 100644 --- a/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ b/mall-tiny-08/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.util.StrUtil; import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.service.RedisService; import com.macro.mall.tiny.service.UmsMemberService; @@ -11,8 +12,10 @@ import java.util.Random; /** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class UmsMemberServiceImpl implements UmsMemberService { @@ -40,10 +43,10 @@ public CommonResult generateAuthCode(String telephone) { //对输入的验证码进行校验 @Override public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { + if (StrUtil.isEmpty(authCode)) { return CommonResult.failed("请输入验证码"); } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); + String realAuthCode = (String) redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); boolean result = authCode.equals(realAuthCode); if (result) { return CommonResult.success(null, "验证码校验成功"); diff --git a/mall-tiny-08/src/main/resources/application.yml b/mall-tiny-08/src/main/resources/application.yml index 49991b36..82cfc697 100644 --- a/mall-tiny-08/src/main/resources/application.yml +++ b/mall-tiny-08/src/main/resources/application.yml @@ -3,44 +3,57 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + servlet: + multipart: + enabled: true #开 启文件上传 + max-file-size: 10MB # 限制文件上传大小为10M + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) - jedis: + lettuce: pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) + max-active: 8 # 连接池最大连接数 + max-idle: 8 # 连接池最大空闲连接数 + min-idle: 0 # 连接池最小空闲连接数 + max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制 data: elasticsearch: repositories: - enabled: true - cluster-nodes: 127.0.0.1:9300 # es的连接地址及端口号 - cluster-name: elasticsearch # es集群的名称 + enabled: true # 开启ES仓库配置,自动为仓库接口生成实现类 mongodb: - host: localhost # mongodb的连接地址 - port: 27017 # mongodb的连接端口号 - database: mall-port # mongodb的连接的数据库 + host: localhost # MongoDB的连接地址 + port: 27017 # MongoDB的连接端口号 + database: mall-port # MongoDB的连接的数据库 + elasticsearch: + uris: http://localhost:9200 # ES的连接地址及端口号 rabbitmq: - host: localhost # rabbitmq的连接地址 - port: 5672 # rabbitmq的连接端口号 - virtual-host: /mall # rabbitmq的虚拟host - username: mall # rabbitmq的用户名 - password: mall # rabbitmq的密码 - publisher-confirms: true #如果对异步消息需要回调必须设置为true + host: localhost + port: 5672 + virtual-host: /mall + username: mall + password: mall + publisher-returns: true # 消息发送到队列确认 + publisher-confirm-type: simple # 消息发送到交换器确认 mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml +minio: + endpoint: http://localhost:9000 # MinIO服务所在地址 + bucketName: mall # 存储桶名称 + accessKey: minioadmin # 访问的key + secretKey: minioadmin # 访问的秘钥 + # 自定义redis key redis: key: @@ -51,7 +64,26 @@ redis: # 自定义jwt key jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 + tokenHeader: Authorization # JWT存储的请求头 + secret: mySecret # JWT加解密使用的密钥 + expiration: 604800 # JWT的超期限时间(60*60*24) + tokenHead: Bearer # JWT负载中拿到开头 + +secure: + ignored: + urls: # 安全路径白名单 + - /swagger-ui/ + - /swagger-resources/** + - /**/v2/api-docs + - /**/*.html + - /**/*.js + - /**/*.css + - /**/*.png + - /favicon.ico + - /actuator/** + - /druid/** + - /admin/** + - /esProduct/** + - /member/readHistory/** + - /order/** + - /minio/** \ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml index 1842e269..8d47261a 100644 --- a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ b/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -212,7 +212,7 @@ - select count(*) from pms_brand @@ -221,74 +221,74 @@ update pms_brand - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, - - show_status = #{record.showStatus,jdbcType=INTEGER}, + + show_status = #{row.showStatus,jdbcType=INTEGER}, - - product_count = #{record.productCount,jdbcType=INTEGER}, + + product_count = #{row.productCount,jdbcType=INTEGER}, - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, - - logo = #{record.logo,jdbcType=VARCHAR}, + + logo = #{row.logo,jdbcType=VARCHAR}, - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, - + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + diff --git a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-08/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/mapper/EsProductDao.xml b/mall-tiny-08/src/main/resources/dao/EsProductDao.xml similarity index 100% rename from mall-tiny-09/src/main/resources/mapper/EsProductDao.xml rename to mall-tiny-08/src/main/resources/dao/EsProductDao.xml diff --git a/mall-tiny-08/src/main/resources/generator.properties b/mall-tiny-08/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-08/src/main/resources/generator.properties +++ b/mall-tiny-08/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/generatorConfig.xml b/mall-tiny-08/src/main/resources/generatorConfig.xml index 35aa8887..f380f514 100644 --- a/mall-tiny-08/src/main/resources/generatorConfig.xml +++ b/mall-tiny-08/src/main/resources/generatorConfig.xml @@ -6,59 +6,45 @@ + + + + + - + + + - + - + - + - + - +
- - - -
- - - -
- - - -
- - -
- - -
- - -
\ No newline at end of file diff --git a/mall-tiny-08/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny-08/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny-08/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny-08/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-08/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-08/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-08/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-09/pom.xml b/mall-tiny-09/pom.xml deleted file mode 100644 index d5a04aab..00000000 --- a/mall-tiny-09/pom.xml +++ /dev/null @@ -1,135 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-09 - 0.0.1-SNAPSHOT - mall-tiny-09 - Demo project for Spring Boot - - - 1.8 - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 4.5.7 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - org.springframework.boot - spring-boot-starter-data-elasticsearch - - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - - org.springframework.boot - spring-boot-starter-amqp - - - - org.projectlombok - lombok - true - - - - com.aliyun.oss - aliyun-sdk-oss - 2.5.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index cd91d663..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; -import org.springframework.data.domain.Page; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - /** - * 将SpringData分页后的list转为分页信息 - */ - public static CommonPage restPage(Page pageInfo) { - CommonPage result = new CommonPage(); - result.setTotalPage(pageInfo.getTotalPages()); - result.setPageNum(pageInfo.getNumber()); - result.setPageSize(pageInfo.getSize()); - result.setTotal(pageInfo.getTotalElements()); - result.setList(pageInfo.getContent()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java deleted file mode 100644 index 7da9e892..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.service.OmsPortalOrderService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * 取消订单消息的处理者 - * Created by macro on 2018/9/14. - */ -@Component -@RabbitListener(queues = "mall.order.cancel") -public class CancelOrderReceiver { - private static Logger LOGGER =LoggerFactory.getLogger(CancelOrderReceiver.class); - @Autowired - private OmsPortalOrderService portalOrderService; - @RabbitHandler - public void handle(Long orderId){ - LOGGER.info("receive delay message orderId:{}",orderId); - portalOrderService.cancelOrder(orderId); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java deleted file mode 100644 index b4c78ea9..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.dto.QueueEnum; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.AmqpException; -import org.springframework.amqp.core.AmqpTemplate; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.core.MessagePostProcessor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * 取消订单消息的发出者 - * Created by macro on 2018/9/14. - */ -@Component -public class CancelOrderSender { - private static Logger LOGGER =LoggerFactory.getLogger(CancelOrderSender.class); - @Autowired - private AmqpTemplate amqpTemplate; - - public void sendMessage(Long orderId,final long delayTimes){ - //给延迟队列发送消息 - amqpTemplate.convertAndSend(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getExchange(), QueueEnum.QUEUE_TTL_ORDER_CANCEL.getRouteKey(), orderId, new MessagePostProcessor() { - @Override - public Message postProcessMessage(Message message) throws AmqpException { - //给消息设置延迟毫秒值 - message.getMessageProperties().setExpiration(String.valueOf(delayTimes)); - return message; - } - }); - LOGGER.info("send delay message orderId:{}",orderId); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java deleted file mode 100644 index 678406da..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.component; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -/** - * Created by macro on 2018/8/24. - * 订单超时取消并解锁库存的定时器 - */ -@Component -public class OrderTimeOutCancelTask { - private Logger LOGGER = LoggerFactory.getLogger(OrderTimeOutCancelTask.class); - - /** - * cron表达式:Seconds Minutes Hours DayofMonth Month DayofWeek [Year] - * 每10分钟扫描一次,扫描设定超时时间之前下的订单,如果没支付则取消该订单 - */ - @Scheduled(cron = "0 0/10 * ? * ?") - private void cancelTimeOutOrder() { - // TODO: 2019/5/3 此处应调用取消订单的方法,具体查看mall项目源码 - LOGGER.info("取消订单,并根据sku编号释放锁定库存"); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index f4584332..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) -public class MyBatisConfig { -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/OssConfig.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/OssConfig.java deleted file mode 100644 index 0bee6bd4..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/OssConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.aliyun.oss.OSSClient; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * Created by macro on 2018/5/17. - */ -@Configuration -public class OssConfig { - @Value("${aliyun.oss.endpoint}") - private String ALIYUN_OSS_ENDPOINT; - @Value("${aliyun.oss.accessKeyId}") - private String ALIYUN_OSS_ACCESSKEYID; - @Value("${aliyun.oss.accessKeySecret}") - private String ALIYUN_OSS_ACCESSKEYSECRET; - @Bean - public OSSClient ossClient(){ - return new OSSClient(ALIYUN_OSS_ENDPOINT,ALIYUN_OSS_ACCESSKEYID,ALIYUN_OSS_ACCESSKEYSECRET); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java deleted file mode 100644 index 35a98adf..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.dto.QueueEnum; -import org.springframework.amqp.core.*; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * 消息队列配置 - * Created by macro on 2018/9/14. - */ -@Configuration -public class RabbitMqConfig { - - /** - * 订单消息实际消费队列所绑定的交换机 - */ - @Bean - DirectExchange orderDirect() { - return (DirectExchange) ExchangeBuilder - .directExchange(QueueEnum.QUEUE_ORDER_CANCEL.getExchange()) - .durable(true) - .build(); - } - - /** - * 订单延迟队列所绑定的交换机 - */ - @Bean - DirectExchange orderTtlDirect() { - return (DirectExchange) ExchangeBuilder - .directExchange(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getExchange()) - .durable(true) - .build(); - } - - /** - * 订单实际消费队列 - */ - @Bean - public Queue orderQueue() { - return new Queue(QueueEnum.QUEUE_ORDER_CANCEL.getName()); - } - - /** - * 订单延迟队列(死信队列) - */ - @Bean - public Queue orderTtlQueue() { - return QueueBuilder - .durable(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getName()) - .withArgument("x-dead-letter-exchange", QueueEnum.QUEUE_ORDER_CANCEL.getExchange())//到期后转发的交换机 - .withArgument("x-dead-letter-routing-key", QueueEnum.QUEUE_ORDER_CANCEL.getRouteKey())//到期后转发的路由键 - .build(); - } - - /** - * 将订单队列绑定到交换机 - */ - @Bean - Binding orderBinding(DirectExchange orderDirect,Queue orderQueue){ - return BindingBuilder - .bind(orderQueue) - .to(orderDirect) - .with(QueueEnum.QUEUE_ORDER_CANCEL.getRouteKey()); - } - - /** - * 将订单延迟队列绑定到交换机 - */ - @Bean - Binding orderTtlBinding(DirectExchange orderTtlDirect,Queue orderTtlQueue){ - return BindingBuilder - .bind(orderTtlQueue) - .to(orderTtlDirect) - .with(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getRouteKey()); - } - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index f6947b43..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.dto.AdminUserDetails; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - -import java.util.List; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled=true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login", "/admin/register")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers("/esProduct/**","/member/readHistory/**","/order/**","/aliyun/oss/**")// 测试时放开 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() -// .antMatchers("/**")//测试时全部运行访问 -// .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - UmsAdmin admin = adminService.getAdminByUsername(username); - if (admin != null) { - List permissionList = adminService.getPermissionList(admin.getId()); - return new AdminUserDetails(admin,permissionList); - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java deleted file mode 100644 index 54c5f4f8..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; - -/** - * 定时任务配置 - * Created by macro on 2019/4/8. - */ -@Configuration -@EnableScheduling -public class SpringTaskConfig { -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 8946105a..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .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("/brand/.*")); - 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-tiny-09/src/main/java/com/macro/mall/tiny/controller/EsProductController.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/EsProductController.java deleted file mode 100644 index 5ea0b066..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/EsProductController.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import com.macro.mall.tiny.service.EsProductService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 搜索商品管理Controller - * Created by macro on 2018/6/19. - */ -@Controller -@Api(tags = "EsProductController", description = "搜索商品管理") -@RequestMapping("/esProduct") -public class EsProductController { - @Autowired - private EsProductService esProductService; - - @ApiOperation(value = "导入所有数据库中商品到ES") - @RequestMapping(value = "/importAll", method = RequestMethod.POST) - @ResponseBody - public CommonResult importAllList() { - int count = esProductService.importAll(); - return CommonResult.success(count); - } - - @ApiOperation(value = "根据id删除商品") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult delete(@PathVariable Long id) { - esProductService.delete(id); - return CommonResult.success(null); - } - - @ApiOperation(value = "根据id批量删除商品") - @RequestMapping(value = "/delete/batch", method = RequestMethod.POST) - @ResponseBody - public CommonResult delete(@RequestParam("ids") List ids) { - esProductService.delete(ids); - return CommonResult.success(null); - } - - @ApiOperation(value = "根据id创建商品") - @RequestMapping(value = "/create/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult create(@PathVariable Long id) { - EsProduct esProduct = esProductService.create(id); - if (esProduct != null) { - return CommonResult.success(esProduct); - } else { - return CommonResult.failed(); - } - } - - @ApiOperation(value = "简单搜索") - @RequestMapping(value = "/search/simple", method = RequestMethod.GET) - @ResponseBody - public CommonResult> search(@RequestParam(required = false) String keyword, - @RequestParam(required = false, defaultValue = "0") Integer pageNum, - @RequestParam(required = false, defaultValue = "5") Integer pageSize) { - Page esProductPage = esProductService.search(keyword, pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(esProductPage)); - } - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java deleted file mode 100644 index b7eccf9c..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.dto.OrderParam; -import com.macro.mall.tiny.service.OmsPortalOrderService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -/** - * 订单管理Controller - * Created by macro on 2018/8/30. - */ -@Controller -@Api(tags = "OmsPortalOrderController", description = "订单管理") -@RequestMapping("/order") -public class OmsPortalOrderController { - @Autowired - private OmsPortalOrderService portalOrderService; - - @ApiOperation("根据购物车信息生成订单") - @RequestMapping(value = "/generateOrder", method = RequestMethod.POST) - @ResponseBody - public Object generateOrder(@RequestBody OrderParam orderParam) { - return portalOrderService.generateOrder(orderParam); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/OssController.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/OssController.java deleted file mode 100644 index e75417fe..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/OssController.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.macro.mall.tiny.controller; - - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.OssCallbackResult; -import com.macro.mall.tiny.dto.OssPolicyResult; -import com.macro.mall.tiny.service.impl.OssServiceImpl; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -import javax.servlet.http.HttpServletRequest; - -/** - * Oss相关操作接口 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "OssController", description = "Oss管理") -@RequestMapping("/aliyun/oss") -public class OssController { - @Autowired - private OssServiceImpl ossService; - - @ApiOperation(value = "oss上传签名生成") - @RequestMapping(value = "/policy", method = RequestMethod.GET) - @ResponseBody - public CommonResult policy() { - OssPolicyResult result = ossService.policy(); - return CommonResult.success(result); - } - - @ApiOperation(value = "oss上传成功回调") - @RequestMapping(value = "callback", method = RequestMethod.POST) - @ResponseBody - public CommonResult callback(HttpServletRequest request) { - OssCallbackResult ossCallbackResult = ossService.callback(request); - return CommonResult.success(ossCallbackResult); - } - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 0dee32a4..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:create')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:update')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:delete')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index d95f9683..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @ApiOperation(value = "用户注册") - @RequestMapping(value = "/register", method = RequestMethod.POST) - @ResponseBody - public CommonResult register(@RequestBody UmsAdmin umsAdminParam, BindingResult result) { - UmsAdmin umsAdmin = adminService.register(umsAdminParam); - if (umsAdmin == null) { - CommonResult.failed(); - } - return CommonResult.success(umsAdmin); - } - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) { - String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword()); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } - - @ApiOperation("获取用户所有权限(包括+-权限)") - @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getPermissionList(@PathVariable Long adminId) { - List permissionList = adminService.getPermissionList(adminId); - return CommonResult.success(permissionList); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java deleted file mode 100644 index c936c689..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsMemberService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -/** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. - */ -@Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") -@RequestMapping("/sso") -public class UmsMemberController { - @Autowired - private UmsMemberService memberService; - - @ApiOperation("获取验证码") - @RequestMapping(value = "/getAuthCode", method = RequestMethod.GET) - @ResponseBody - public CommonResult getAuthCode(@RequestParam String telephone) { - return memberService.generateAuthCode(telephone); - } - - @ApiOperation("判断验证码是否正确") - @RequestMapping(value = "/verifyAuthCode", method = RequestMethod.POST) - @ResponseBody - public CommonResult updatePassword(@RequestParam String telephone, - @RequestParam String authCode) { - return memberService.verifyAuthCode(telephone,authCode); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java deleted file mode 100644 index 7a9a94e2..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.macro.mall.tiny.dao; - -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 搜索系统中的商品管理自定义Dao - * Created by macro on 2018/6/19. - */ -public interface EsProductDao { - List getAllEsProductList(@Param("id") Long id); -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java deleted file mode 100644 index 50f00f7c..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.dao; - - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 后台用户与角色管理自定义Dao - * Created by macro on 2018/10/8. - */ -public interface UmsAdminRoleRelationDao { - - /** - * 获取用户所有权限(包括+-权限) - */ - List getPermissionList(@Param("adminId") Long adminId); -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java deleted file mode 100644 index bd712424..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * SpringSecurity需要的用户详情 - * Created by macro on 2018/4/26. - */ -public class AdminUserDetails implements UserDetails { - private UmsAdmin umsAdmin; - private List permissionList; - public AdminUserDetails(UmsAdmin umsAdmin, List permissionList) { - this.umsAdmin = umsAdmin; - this.permissionList = permissionList; - } - - @Override - public Collection getAuthorities() { - //返回当前用户的权限 - return permissionList.stream() - .filter(permission -> permission.getValue()!=null) - .map(permission ->new SimpleGrantedAuthority(permission.getValue())) - .collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return umsAdmin.getPassword(); - } - - @Override - public String getUsername() { - return umsAdmin.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return umsAdmin.getStatus().equals(1); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OrderParam.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OrderParam.java deleted file mode 100644 index 88fa55c9..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OrderParam.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.macro.mall.tiny.dto; - -/** - * 生成订单时传入的参数 - * Created by macro on 2018/8/30. - */ -public class OrderParam { - //收货地址id - private Long memberReceiveAddressId; - //优惠券id - private Long couponId; - //使用的积分数 - private Integer useIntegration; - //支付方式 - private Integer payType; - - public Long getMemberReceiveAddressId() { - return memberReceiveAddressId; - } - - public void setMemberReceiveAddressId(Long memberReceiveAddressId) { - this.memberReceiveAddressId = memberReceiveAddressId; - } - - public Long getCouponId() { - return couponId; - } - - public void setCouponId(Long couponId) { - this.couponId = couponId; - } - - public Integer getPayType() { - return payType; - } - - public void setPayType(Integer payType) { - this.payType = payType; - } - - public Integer getUseIntegration() { - return useIntegration; - } - - public void setUseIntegration(Integer useIntegration) { - this.useIntegration = useIntegration; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssCallbackParam.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssCallbackParam.java deleted file mode 100644 index e8b5a117..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssCallbackParam.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; - -/** - * oss上传成功后的回调参数 - * Created by macro on 2018/5/17. - */ -public class OssCallbackParam { - @ApiModelProperty("请求的回调地址") - private String callbackUrl; - @ApiModelProperty("回调是传入request中的参数") - private String callbackBody; - @ApiModelProperty("回调时传入参数的格式,比如表单提交形式") - private String callbackBodyType; - - public String getCallbackUrl() { - return callbackUrl; - } - - public void setCallbackUrl(String callbackUrl) { - this.callbackUrl = callbackUrl; - } - - public String getCallbackBody() { - return callbackBody; - } - - public void setCallbackBody(String callbackBody) { - this.callbackBody = callbackBody; - } - - public String getCallbackBodyType() { - return callbackBodyType; - } - - public void setCallbackBodyType(String callbackBodyType) { - this.callbackBodyType = callbackBodyType; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssCallbackResult.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssCallbackResult.java deleted file mode 100644 index c03dd90c..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssCallbackResult.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; - -/** - * oss上传文件的回调结果 - * Created by macro on 2018/5/17. - */ -public class OssCallbackResult { - @ApiModelProperty("文件名称") - private String filename; - @ApiModelProperty("文件大小") - private String size; - @ApiModelProperty("文件的mimeType") - private String mimeType; - @ApiModelProperty("图片文件的宽") - private String width; - @ApiModelProperty("图片文件的高") - private String height; - - public String getFilename() { - return filename; - } - - public void setFilename(String filename) { - this.filename = filename; - } - - public String getSize() { - return size; - } - - public void setSize(String size) { - this.size = size; - } - - public String getMimeType() { - return mimeType; - } - - public void setMimeType(String mimeType) { - this.mimeType = mimeType; - } - - public String getWidth() { - return width; - } - - public void setWidth(String width) { - this.width = width; - } - - public String getHeight() { - return height; - } - - public void setHeight(String height) { - this.height = height; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssPolicyResult.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssPolicyResult.java deleted file mode 100644 index e9f081ca..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/OssPolicyResult.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; - -/** - * 获取OSS上传文件授权返回结果 - * Created by macro on 2018/5/17. - */ -public class OssPolicyResult { - @ApiModelProperty("访问身份验证中用到用户标识") - private String accessKeyId; - @ApiModelProperty("用户表单上传的策略,经过base64编码过的字符串") - private String policy; - @ApiModelProperty("对policy签名后的字符串") - private String signature; - @ApiModelProperty("上传文件夹路径前缀") - private String dir; - @ApiModelProperty("oss对外服务的访问域名") - private String host; - @ApiModelProperty("上传成功后的回调设置") - private String callback; - - public String getAccessKeyId() { - return accessKeyId; - } - - public void setAccessKeyId(String accessKeyId) { - this.accessKeyId = accessKeyId; - } - - public String getPolicy() { - return policy; - } - - public void setPolicy(String policy) { - this.policy = policy; - } - - public String getSignature() { - return signature; - } - - public void setSignature(String signature) { - this.signature = signature; - } - - public String getDir() { - return dir; - } - - public void setDir(String dir) { - this.dir = dir; - } - - public String getHost() { - return host; - } - - public void setHost(String host) { - this.host = host; - } - - public String getCallback() { - return callback; - } - - public void setCallback(String callback) { - this.callback = callback; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java deleted file mode 100644 index 20ac4683..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.dto; - -import lombok.Getter; - -/** - * 消息队列枚举配置 - * Created by macro on 2018/9/14. - */ -@Getter -public enum QueueEnum { - /** - * 消息通知队列 - */ - QUEUE_ORDER_CANCEL("mall.order.direct", "mall.order.cancel", "mall.order.cancel"), - /** - * 消息通知ttl队列 - */ - QUEUE_TTL_ORDER_CANCEL("mall.order.direct.ttl", "mall.order.cancel.ttl", "mall.order.cancel.ttl"); - - /** - * 交换名称 - */ - private String exchange; - /** - * 队列名称 - */ - private String name; - /** - * 路由键 - */ - private String routeKey; - - QueueEnum(String exchange, String name, String routeKey) { - this.exchange = exchange; - this.name = name; - this.routeKey = routeKey; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java deleted file mode 100644 index 94e9396a..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.validator.constraints.NotEmpty; - -/** - * 用户登录参数 - * Created by macro on 2018/4/26. - */ -public class UmsAdminLoginParam { - @ApiModelProperty(value = "用户名", required = true) - @NotEmpty(message = "用户名不能为空") - private String username; - @ApiModelProperty(value = "密码", required = true) - @NotEmpty(message = "密码不能为空") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java deleted file mode 100644 index 3a8e6839..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java +++ /dev/null @@ -1,189 +0,0 @@ -package com.macro.mall.tiny.nosql.elasticsearch.document; - -import org.springframework.data.annotation.Id; -import org.springframework.data.elasticsearch.annotations.Document; -import org.springframework.data.elasticsearch.annotations.Field; -import org.springframework.data.elasticsearch.annotations.FieldType; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.List; - -/** - * 搜索中的商品信息 - * Created by macro on 2018/6/19. - */ -@Document(indexName = "pms", type = "product",shards = 1,replicas = 0) -public class EsProduct implements Serializable { - private static final long serialVersionUID = -1L; - @Id - private Long id; - @Field(type = FieldType.Keyword) - private String productSn; - private Long brandId; - @Field(type = FieldType.Keyword) - private String brandName; - private Long productCategoryId; - @Field(type = FieldType.Keyword) - private String productCategoryName; - private String pic; - @Field(analyzer = "ik_max_word",type = FieldType.Text) - private String name; - @Field(analyzer = "ik_max_word",type = FieldType.Text) - private String subTitle; - @Field(analyzer = "ik_max_word",type = FieldType.Text) - private String keywords; - private BigDecimal price; - private Integer sale; - private Integer newStatus; - private Integer recommandStatus; - private Integer stock; - private Integer promotionType; - private Integer sort; - @Field(type =FieldType.Nested) - private List attrValueList; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getProductSn() { - return productSn; - } - - public void setProductSn(String productSn) { - this.productSn = productSn; - } - - public Long getBrandId() { - return brandId; - } - - public void setBrandId(Long brandId) { - this.brandId = brandId; - } - - public String getBrandName() { - return brandName; - } - - public void setBrandName(String brandName) { - this.brandName = brandName; - } - - public Long getProductCategoryId() { - return productCategoryId; - } - - public void setProductCategoryId(Long productCategoryId) { - this.productCategoryId = productCategoryId; - } - - public String getProductCategoryName() { - return productCategoryName; - } - - public void setProductCategoryName(String productCategoryName) { - this.productCategoryName = productCategoryName; - } - - public String getPic() { - return pic; - } - - public void setPic(String pic) { - this.pic = pic; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSubTitle() { - return subTitle; - } - - public void setSubTitle(String subTitle) { - this.subTitle = subTitle; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public Integer getSale() { - return sale; - } - - public void setSale(Integer sale) { - this.sale = sale; - } - - public Integer getNewStatus() { - return newStatus; - } - - public void setNewStatus(Integer newStatus) { - this.newStatus = newStatus; - } - - public Integer getRecommandStatus() { - return recommandStatus; - } - - public void setRecommandStatus(Integer recommandStatus) { - this.recommandStatus = recommandStatus; - } - - public Integer getStock() { - return stock; - } - - public void setStock(Integer stock) { - this.stock = stock; - } - - public Integer getPromotionType() { - return promotionType; - } - - public void setPromotionType(Integer promotionType) { - this.promotionType = promotionType; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public List getAttrValueList() { - return attrValueList; - } - - public void setAttrValueList(List attrValueList) { - this.attrValueList = attrValueList; - } - - public String getKeywords() { - return keywords; - } - - public void setKeywords(String keywords) { - this.keywords = keywords; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java deleted file mode 100644 index 676f6e23..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.nosql.elasticsearch.document; - -import org.springframework.data.elasticsearch.annotations.Field; -import org.springframework.data.elasticsearch.annotations.FieldType; - -import java.io.Serializable; - -/** - * 搜索中的商品属性信息 - * Created by macro on 2018/6/27. - */ -public class EsProductAttributeValue implements Serializable { - private static final long serialVersionUID = 1L; - private Long id; - private Long productAttributeId; - //属性值 - @Field(type = FieldType.Keyword) - private String value; - //属性参数:0->规格;1->参数 - private Integer type; - //属性名称 - @Field(type=FieldType.Keyword) - private String name; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getProductAttributeId() { - return productAttributeId; - } - - public void setProductAttributeId(Long productAttributeId) { - this.productAttributeId = productAttributeId; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java deleted file mode 100644 index d874dd7f..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.nosql.elasticsearch.repository; - -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; - -/** - * 商品ES操作类 - * Created by macro on 2018/6/19. - */ -public interface EsProductRepository extends ElasticsearchRepository { - /** - * 搜索查询 - * - * @param name 商品名称 - * @param subTitle 商品标题 - * @param keywords 商品关键字 - * @param page 分页信息 - * @return - */ - Page findByNameOrSubTitleOrKeywords(String name, String subTitle, String keywords, Pageable page); - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java deleted file mode 100644 index 61fbe867..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.macro.mall.tiny.nosql.mongodb.document; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.index.Indexed; -import org.springframework.data.mongodb.core.mapping.Document; - -import java.util.Date; - -/** - * 用户商品浏览历史记录 - * Created by macro on 2018/8/3. - */ -@Document -public class MemberReadHistory { - @Id - private String id; - @Indexed - private Long memberId; - private String memberNickname; - private String memberIcon; - @Indexed - private Long productId; - private String productName; - private String productPic; - private String productSubTitle; - private String productPrice; - private Date createTime; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public Long getMemberId() { - return memberId; - } - - public void setMemberId(Long memberId) { - this.memberId = memberId; - } - - public String getMemberNickname() { - return memberNickname; - } - - public void setMemberNickname(String memberNickname) { - this.memberNickname = memberNickname; - } - - public String getMemberIcon() { - return memberIcon; - } - - public void setMemberIcon(String memberIcon) { - this.memberIcon = memberIcon; - } - - public Long getProductId() { - return productId; - } - - public void setProductId(Long productId) { - this.productId = productId; - } - - public String getProductName() { - return productName; - } - - public void setProductName(String productName) { - this.productName = productName; - } - - public String getProductPic() { - return productPic; - } - - public void setProductPic(String productPic) { - this.productPic = productPic; - } - - public String getProductSubTitle() { - return productSubTitle; - } - - public void setProductSubTitle(String productSubTitle) { - this.productSubTitle = productSubTitle; - } - - public String getProductPrice() { - return productPrice; - } - - public void setProductPrice(String productPrice) { - this.productPrice = productPrice; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/EsProductService.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/EsProductService.java deleted file mode 100644 index f2c15434..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/EsProductService.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import org.springframework.data.domain.Page; - -import java.util.List; - -/** - * 商品搜索管理Service - * Created by macro on 2018/6/19. - */ -public interface EsProductService { - /** - * 从数据库中导入所有商品到ES - */ - int importAll(); - - /** - * 根据id删除商品 - */ - void delete(Long id); - - /** - * 根据id创建商品 - */ - EsProduct create(Long id); - - /** - * 批量删除商品 - */ - void delete(List ids); - - /** - * 根据关键字搜索名称或者副标题 - */ - Page search(String keyword, Integer pageNum, Integer pageSize); - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java deleted file mode 100644 index dc28b2a2..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.OrderParam; -import org.springframework.transaction.annotation.Transactional; - -/** - * 前台订单管理Service - * Created by macro on 2018/8/30. - */ -public interface OmsPortalOrderService { - - /** - * 根据提交信息生成订单 - */ - @Transactional - CommonResult generateOrder(OrderParam orderParam); - - /** - * 取消单个超时订单 - */ - @Transactional - void cancelOrder(Long orderId); -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/OssService.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/OssService.java deleted file mode 100644 index 89fb49c2..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/OssService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.dto.OssCallbackResult; -import com.macro.mall.tiny.dto.OssPolicyResult; - -import javax.servlet.http.HttpServletRequest; - -/** - * oss上传管理Service - * Created by macro on 2018/5/17. - */ -public interface OssService { - /** - * oss上传策略生成 - */ - OssPolicyResult policy(); - - /** - * oss上传成功回调 - */ - OssCallbackResult callback(HttpServletRequest request); -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/RedisService.java deleted file mode 100644 index 191ab73b..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.macro.mall.tiny.service; - -/** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. - */ -public interface RedisService { - /** - * 存储数据 - */ - void set(String key, String value); - - /** - * 获取数据 - */ - String get(String key); - - /** - * 设置超期时间 - */ - boolean expire(String key, long expire); - - /** - * 删除数据 - */ - void remove(String key); - - /** - * 自增操作 - * @param delta 自增步长 - */ - Long increment(String key, long delta); - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 08a9d539..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; - -import java.util.List; - -/** - * 后台管理员Service - * Created by macro on 2018/4/26. - */ -public interface UmsAdminService { - /** - * 根据用户名获取后台管理员 - */ - UmsAdmin getAdminByUsername(String username); - - /** - * 注册功能 - */ - UmsAdmin register(UmsAdmin umsAdminParam); - - /** - * 登录功能 - * @param username 用户名 - * @param password 密码 - * @return 生成的JWT的token - */ - String login(String username, String password); - - /** - * 获取用户所有权限(包括角色权限和+-权限) - */ - List getPermissionList(Long adminId); -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java deleted file mode 100644 index f9fd8ac9..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.common.api.CommonResult; - -/** - * 会员管理Service - * Created by macro on 2018/8/3. - */ -public interface UmsMemberService { - - /** - * 生成验证码 - */ - CommonResult generateAuthCode(String telephone); - - /** - * 判断验证码和手机号码是否匹配 - */ - CommonResult verifyAuthCode(String telephone, String authCode); - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java deleted file mode 100644 index 44939caa..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.dao.EsProductDao; -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import com.macro.mall.tiny.nosql.elasticsearch.repository.EsProductRepository; -import com.macro.mall.tiny.service.EsProductService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - - -/** - * 商品搜索管理Service实现类 - * Created by macro on 2018/6/19. - */ -@Service -public class EsProductServiceImpl implements EsProductService { - private static final Logger LOGGER = LoggerFactory.getLogger(EsProductServiceImpl.class); - @Autowired - private EsProductDao productDao; - @Autowired - private EsProductRepository productRepository; - - @Override - public int importAll() { - List esProductList = productDao.getAllEsProductList(null); - Iterable esProductIterable = productRepository.saveAll(esProductList); - Iterator iterator = esProductIterable.iterator(); - int result = 0; - while (iterator.hasNext()) { - result++; - iterator.next(); - } - return result; - } - - @Override - public void delete(Long id) { - productRepository.deleteById(id); - } - - @Override - public EsProduct create(Long id) { - EsProduct result = null; - List esProductList = productDao.getAllEsProductList(id); - if (esProductList.size() > 0) { - EsProduct esProduct = esProductList.get(0); - result = productRepository.save(esProduct); - } - return result; - } - - @Override - public void delete(List ids) { - if (!CollectionUtils.isEmpty(ids)) { - List esProductList = new ArrayList<>(); - for (Long id : ids) { - EsProduct esProduct = new EsProduct(); - esProduct.setId(id); - esProductList.add(esProduct); - } - productRepository.deleteAll(esProductList); - } - } - - @Override - public Page search(String keyword, Integer pageNum, Integer pageSize) { - Pageable pageable = PageRequest.of(pageNum, pageSize); - return productRepository.findByNameOrSubTitleOrKeywords(keyword, keyword, keyword, pageable); - } - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java deleted file mode 100644 index e2ccf246..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.component.CancelOrderSender; -import com.macro.mall.tiny.dto.OrderParam; -import com.macro.mall.tiny.service.OmsPortalOrderService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * 前台订单管理Service - * Created by macro on 2018/8/30. - */ -@Service -public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { - private static Logger LOGGER = LoggerFactory.getLogger(OmsPortalOrderServiceImpl.class); - @Autowired - private CancelOrderSender cancelOrderSender; - - @Override - public CommonResult generateOrder(OrderParam orderParam) { - //todo 执行一系类下单操作,具体参考mall项目 - LOGGER.info("process generateOrder"); - //下单完成后开启一个延迟消息,用于当用户没有付款时取消订单(orderId应该在下单后生成) - sendDelayMessageCancelOrder(11L); - return CommonResult.success(null, "下单成功"); - } - - @Override - public void cancelOrder(Long orderId) { - //todo 执行一系类取消订单操作,具体参考mall项目 - LOGGER.info("process cancelOrder orderId:{}",orderId); - } - - private void sendDelayMessageCancelOrder(Long orderId) { - //获取订单超时时间,假设为60分钟(测试用的30秒) - long delayTimes = 30 * 1000; - //发送延迟消息 - cancelOrderSender.sendMessage(orderId, delayTimes); - } - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/OssServiceImpl.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/OssServiceImpl.java deleted file mode 100644 index ba042e02..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/OssServiceImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.json.JSONUtil; -import com.aliyun.oss.OSSClient; -import com.aliyun.oss.common.utils.BinaryUtil; -import com.aliyun.oss.model.MatchMode; -import com.aliyun.oss.model.PolicyConditions; -import com.macro.mall.tiny.dto.OssCallbackParam; -import com.macro.mall.tiny.dto.OssCallbackResult; -import com.macro.mall.tiny.dto.OssPolicyResult; -import com.macro.mall.tiny.service.OssService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -import javax.servlet.http.HttpServletRequest; -import java.text.SimpleDateFormat; -import java.util.Date; - -/** - * oss上传管理Service实现类 - * Created by macro on 2018/5/17. - */ -@Service -public class OssServiceImpl implements OssService { - - private static final Logger LOGGER = LoggerFactory.getLogger(OssServiceImpl.class); - @Value("${aliyun.oss.policy.expire}") - private int ALIYUN_OSS_EXPIRE; - @Value("${aliyun.oss.maxSize}") - private int ALIYUN_OSS_MAX_SIZE; - @Value("${aliyun.oss.callback}") - private String ALIYUN_OSS_CALLBACK; - @Value("${aliyun.oss.bucketName}") - private String ALIYUN_OSS_BUCKET_NAME; - @Value("${aliyun.oss.endpoint}") - private String ALIYUN_OSS_ENDPOINT; - @Value("${aliyun.oss.dir.prefix}") - private String ALIYUN_OSS_DIR_PREFIX; - - @Autowired - private OSSClient ossClient; - - /** - * 签名生成 - */ - @Override - public OssPolicyResult policy() { - OssPolicyResult result = new OssPolicyResult(); - // 存储目录 - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); - String dir = ALIYUN_OSS_DIR_PREFIX+sdf.format(new Date()); - // 签名有效期 - long expireEndTime = System.currentTimeMillis() + ALIYUN_OSS_EXPIRE * 1000; - Date expiration = new Date(expireEndTime); - // 文件大小 - long maxSize = ALIYUN_OSS_MAX_SIZE * 1024 * 1024; - // 回调 - OssCallbackParam callback = new OssCallbackParam(); - callback.setCallbackUrl(ALIYUN_OSS_CALLBACK); - callback.setCallbackBody("filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}"); - callback.setCallbackBodyType("application/x-www-form-urlencoded"); - // 提交节点 - String action = "http://" + ALIYUN_OSS_BUCKET_NAME + "." + ALIYUN_OSS_ENDPOINT; - try { - PolicyConditions policyConds = new PolicyConditions(); - policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, maxSize); - policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir); - String postPolicy = ossClient.generatePostPolicy(expiration, policyConds); - byte[] binaryData = postPolicy.getBytes("utf-8"); - String policy = BinaryUtil.toBase64String(binaryData); - String signature = ossClient.calculatePostSignature(postPolicy); - String callbackData = BinaryUtil.toBase64String(JSONUtil.parse(callback).toString().getBytes("utf-8")); - // 返回结果 - result.setAccessKeyId(ossClient.getCredentialsProvider().getCredentials().getAccessKeyId()); - result.setPolicy(policy); - result.setSignature(signature); - result.setDir(dir); - result.setCallback(callbackData); - result.setHost(action); - } catch (Exception e) { - LOGGER.error("签名生成失败", e); - } - return result; - } - - @Override - public OssCallbackResult callback(HttpServletRequest request) { - OssCallbackResult result= new OssCallbackResult(); - String filename = request.getParameter("filename"); - filename = "http://".concat(ALIYUN_OSS_BUCKET_NAME).concat(".").concat(ALIYUN_OSS_ENDPOINT).concat("/").concat(filename); - result.setFilename(filename); - result.setSize(request.getParameter("size")); - result.setMimeType(request.getParameter("mimeType")); - result.setWidth(request.getParameter("width")); - result.setHeight(request.getParameter("height")); - return result; - } - -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java deleted file mode 100644 index cb9d7e0c..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.service.RedisService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Service; - -import java.util.concurrent.TimeUnit; - -/** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. - */ -@Service -public class RedisServiceImpl implements RedisService { - @Autowired - private StringRedisTemplate stringRedisTemplate; - - @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); - } - - @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); - } - - @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); - } - - @Override - public void remove(String key) { - stringRedisTemplate.delete(key); - } - - @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 4f0a052d..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.dao.UmsAdminRoleRelationDao; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.mapper.UmsAdminMapper; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.service.UmsAdminService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import java.util.Date; -import java.util.List; - -/** - * UmsAdminService实现类 - * Created by macro on 2018/4/26. - */ -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - @Value("${jwt.tokenHead}") - private String tokenHead; - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminRoleRelationDao adminRoleRelationDao; - - @Override - public UmsAdmin getAdminByUsername(String username) { - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(username); - List adminList = adminMapper.selectByExample(example); - if (adminList != null && adminList.size() > 0) { - return adminList.get(0); - } - return null; - } - - @Override - public UmsAdmin register(UmsAdmin umsAdminParam) { - UmsAdmin umsAdmin = new UmsAdmin(); - BeanUtils.copyProperties(umsAdminParam, umsAdmin); - umsAdmin.setCreateTime(new Date()); - umsAdmin.setStatus(1); - //查询是否有相同用户名的用户 - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername()); - List umsAdminList = adminMapper.selectByExample(example); - if (umsAdminList.size() > 0) { - return null; - } - //将密码进行加密操作 - String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); - umsAdmin.setPassword(encodePassword); - adminMapper.insert(umsAdmin); - return umsAdmin; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - LOGGER.warn("登录异常:{}", e.getMessage()); - } - return token; - } - - - @Override - public List getPermissionList(Long adminId) { - return adminRoleRelationDao.getPermissionList(adminId); - } -} diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java deleted file mode 100644 index 06378693..00000000 --- a/mall-tiny-09/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.RedisService; -import com.macro.mall.tiny.service.UmsMemberService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import java.util.Random; - -/** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. - */ -@Service -public class UmsMemberServiceImpl implements UmsMemberService { - @Autowired - private RedisService redisService; - @Value("${redis.key.prefix.authCode}") - private String REDIS_KEY_PREFIX_AUTH_CODE; - @Value("${redis.key.expire.authCode}") - private Long AUTH_CODE_EXPIRE_SECONDS; - - @Override - public CommonResult generateAuthCode(String telephone) { - StringBuilder sb = new StringBuilder(); - Random random = new Random(); - for (int i = 0; i < 6; i++) { - sb.append(random.nextInt(10)); - } - //验证码绑定手机号并存储到redis - redisService.set(REDIS_KEY_PREFIX_AUTH_CODE + telephone, sb.toString()); - redisService.expire(REDIS_KEY_PREFIX_AUTH_CODE + telephone, AUTH_CODE_EXPIRE_SECONDS); - return CommonResult.success(sb.toString(), "获取验证码成功"); - } - - - //对输入的验证码进行校验 - @Override - public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { - return CommonResult.failed("请输入验证码"); - } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); - boolean result = authCode.equals(realAuthCode); - if (result) { - return CommonResult.success(null, "验证码校验成功"); - } else { - return CommonResult.failed("验证码不正确"); - } - } - -} diff --git a/mall-tiny-09/src/main/resources/application.yml b/mall-tiny-09/src/main/resources/application.yml deleted file mode 100644 index 43052586..00000000 --- a/mall-tiny-09/src/main/resources/application.yml +++ /dev/null @@ -1,71 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - redis: - host: localhost # Redis服务器地址 - database: 0 # Redis数据库索引(默认为0) - port: 6379 # Redis服务器连接端口 - password: # Redis服务器连接密码(默认为空) - jedis: - pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) - data: - elasticsearch: - repositories: - enabled: true - cluster-nodes: 127.0.0.1:9300 # es的连接地址及端口号 - cluster-name: elasticsearch # es集群的名称 - mongodb: - host: localhost # mongodb的连接地址 - port: 27017 # mongodb的连接端口号 - database: mall-port # mongodb的连接的数据库 - rabbitmq: - host: localhost # rabbitmq的连接地址 - port: 5672 # rabbitmq的连接端口号 - virtual-host: /mall # rabbitmq的虚拟host - username: mall # rabbitmq的用户名 - password: mall # rabbitmq的密码 - publisher-confirms: true #如果对异步消息需要回调必须设置为true - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义redis key -redis: - key: - prefix: - authCode: "portal:authCode:" - expire: - authCode: 120 # 验证码超期时间 - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -# OSS相关配置信息 -aliyun: - oss: - endpoint: oss-cn-shenzhen.aliyuncs.com # oss对外服务的访问域名 - accessKeyId: test # 访问身份验证中用到用户标识 - accessKeySecret: test # 用户用于加密签名字符串和oss用来验证签名字符串的密钥 - bucketName: macro-oss # oss的存储空间 - policy: - expire: 300 # 签名有效期(S) - maxSize: 10 # 上传文件大小(M) - callback: http://localhost:8080/aliyun/oss/callback # 文件上传成功后的回调地址 - dir: - prefix: mall/images/ # 上传文件夹路径前缀 diff --git a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-09/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/generator.properties b/mall-tiny-09/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-09/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/generatorConfig.xml b/mall-tiny-09/src/main/resources/generatorConfig.xml deleted file mode 100644 index 1364ea26..00000000 --- a/mall-tiny-09/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - -
- - -
- - -
-
-
\ No newline at end of file diff --git a/mall-tiny-09/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny-09/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny-09/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny-09/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-09/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-09/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-09/.gitignore b/mall-tiny-alipay/.gitignore similarity index 100% rename from mall-tiny-09/.gitignore rename to mall-tiny-alipay/.gitignore diff --git a/mall-tiny-alipay/pom.xml b/mall-tiny-alipay/pom.xml new file mode 100644 index 00000000..ab0616e3 --- /dev/null +++ b/mall-tiny-alipay/pom.xml @@ -0,0 +1,145 @@ + + + 4.0.0 + + mall-tiny-alipay + 1.0-SNAPSHOT + mall-tiny-alipay + Demo project for Spring Boot + + + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper-starter.version} + + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + + org.mybatis.generator + mybatis-generator-core + ${mybatis-generator.version} + + + + mysql + mysql-connector-java + ${mysql-connector.version} + + + + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + + + + io.springfox + springfox-boot-starter + ${springfox-swagger.version} + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + com.alipay.sdk + alipay-sdk-java + 4.38.72.ALL + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + io.fabric8 + docker-maven-plugin + ${docker.maven.plugin.version} + + + + build-image + package + + build + + + + + + ${docker.host} + + + + mall-tiny/${project.name}:${project.version} + + + + openjdk:8 + + ${project.build.finalName}.jar + + + + + / + + artifact + + + ["java", "-jar","-Dspring.profiles.active=prod","/${project.build.finalName}.jar"] + + macrozheng + + + + + + + + + diff --git a/mall-tiny-09/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/MallTinyApplication.java similarity index 100% rename from mall-tiny-09/src/main/java/com/macro/mall/tiny/MallTinyApplication.java rename to mall-tiny-alipay/src/main/java/com/macro/mall/tiny/MallTinyApplication.java diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java new file mode 100644 index 00000000..09aab3d7 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -0,0 +1,73 @@ +package com.macro.mall.tiny.common.api; + +import com.github.pagehelper.PageInfo; + +import java.util.List; + +/** + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng + */ +public class CommonPage { + private Integer pageNum; + private Integer pageSize; + private Integer totalPage; + private Long total; + private List list; + + /** + * 将PageHelper分页后的list转为分页信息 + */ + public static CommonPage restPage(List list) { + CommonPage result = new CommonPage(); + PageInfo pageInfo = new PageInfo(list); + result.setTotalPage(pageInfo.getPages()); + result.setPageNum(pageInfo.getPageNum()); + result.setPageSize(pageInfo.getPageSize()); + result.setTotal(pageInfo.getTotal()); + result.setList(pageInfo.getList()); + return result; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public Integer getTotalPage() { + return totalPage; + } + + public void setTotalPage(Integer totalPage) { + this.totalPage = totalPage; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public Long getTotal() { + return total; + } + + public void setTotal(Long total) { + this.total = total; + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java new file mode 100644 index 00000000..89948c22 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -0,0 +1,117 @@ +package com.macro.mall.tiny.common.api; + +/** + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng + */ +public class CommonResult { + private long code; + private String message; + private T data; + + protected CommonResult() { + } + + protected CommonResult(long code, String message, T data) { + this.code = code; + this.message = message; + this.data = data; + } + + /** + * 成功返回结果 + * + * @param data 获取的数据 + */ + public static CommonResult success(T data) { + return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); + } + + /** + * 成功返回结果 + * + * @param data 获取的数据 + * @param message 提示信息 + */ + public static CommonResult success(T data, String message) { + return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); + } + + /** + * 失败返回结果 + * @param errorCode 错误码 + */ + public static CommonResult failed(IErrorCode errorCode) { + return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); + } + + /** + * 失败返回结果 + * @param message 提示信息 + */ + public static CommonResult failed(String message) { + return new CommonResult(ResultCode.FAILED.getCode(), message, null); + } + + /** + * 失败返回结果 + */ + public static CommonResult failed() { + return failed(ResultCode.FAILED); + } + + /** + * 参数验证失败返回结果 + */ + public static CommonResult validateFailed() { + return failed(ResultCode.VALIDATE_FAILED); + } + + /** + * 参数验证失败返回结果 + * @param message 提示信息 + */ + public static CommonResult validateFailed(String message) { + return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); + } + + /** + * 未登录返回结果 + */ + public static CommonResult unauthorized(T data) { + return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); + } + + /** + * 未授权返回结果 + */ + public static CommonResult forbidden(T data) { + return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); + } + + public long getCode() { + return code; + } + + public void setCode(long code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java new file mode 100644 index 00000000..2ff25ea5 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -0,0 +1,13 @@ +package com.macro.mall.tiny.common.api; + +/** + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng + */ +public interface IErrorCode { + long getCode(); + + String getMessage(); +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java new file mode 100644 index 00000000..e34a4cfd --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -0,0 +1,30 @@ +package com.macro.mall.tiny.common.api; + +/** + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng + */ +public enum ResultCode implements IErrorCode { + SUCCESS(200, "操作成功"), + FAILED(500, "操作失败"), + VALIDATE_FAILED(404, "参数检验失败"), + UNAUTHORIZED(401, "暂未登录或token已经过期"), + FORBIDDEN(403, "没有相关权限"); + private long code; + private String message; + + private ResultCode(long code, String message) { + this.code = code; + this.message = message; + } + + public long getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/AlipayClientConfig.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/AlipayClientConfig.java new file mode 100644 index 00000000..34577552 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/AlipayClientConfig.java @@ -0,0 +1,21 @@ +package com.macro.mall.tiny.config; + +import com.alipay.api.AlipayClient; +import com.alipay.api.DefaultAlipayClient; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @auther macrozheng + * @description 支付宝请求客户端配置 + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +@Configuration +public class AlipayClientConfig { + + @Bean + public AlipayClient alipayClient(AlipayConfig config){ + return new DefaultAlipayClient(config.getGatewayUrl(),config.getAppId(),config.getAppPrivateKey(), config.getFormat(),config.getCharset(),config.getAlipayPublicKey(),config.getSignType()); + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/AlipayConfig.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/AlipayConfig.java new file mode 100644 index 00000000..a9d3c30f --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/AlipayConfig.java @@ -0,0 +1,56 @@ +package com.macro.mall.tiny.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +/** + * @auther macrozheng + * @description 支付宝支付相关配置 + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +@Getter +@Setter +@Component +@ConfigurationProperties(prefix = "alipay") +public class AlipayConfig { + /** + * 支付宝网关 + */ + private String gatewayUrl; + /** + * 支付宝分配给开发者的应用ID + */ + private String appId; + /** + * 开发者私钥,由开发者自己生成 + */ + private String appPrivateKey; + /** + * 支付宝公钥,由支付宝生成。 + */ + private String alipayPublicKey; + /** + * 用户确认支付后,支付宝调用的页面返回路径 + */ + private String returnUrl; + /** + * 支付宝服务器主动通知商户服务器里的异步通知回调(需要公网能访问) + */ + private String notifyUrl; + /** + * 参数返回格式,只支持JSON + */ + private String format = "JSON"; + /** + * 请求使用的编码格式 + */ + private String charset = "UTF-8"; + /** + * 生成签名字符串所使用的签名算法类型 + */ + private String signType = "RSA2"; +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java new file mode 100644 index 00000000..ec54365e --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -0,0 +1,15 @@ +package com.macro.mall.tiny.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +/** + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng + */ +@Configuration +@MapperScan("com.macro.mall.tiny.mbg.mapper") +public class MyBatisConfig { +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java new file mode 100644 index 00000000..caa97432 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -0,0 +1,83 @@ +package com.macro.mall.tiny.config; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @auther macrozheng + * @description Swagger相关配置 + * @date 2022/11/23 + * @github https://github.com/macrozheng + */ +@Configuration +public class Swagger2Config { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("SwaggerUI演示") + .description("mall-tiny") + .contact(new Contact("macro", null, null)) + .version("1.0") + .build(); + } + + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/AlipayController.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/AlipayController.java new file mode 100644 index 00000000..e6a251a4 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/AlipayController.java @@ -0,0 +1,77 @@ +package com.macro.mall.tiny.controller; + +import cn.hutool.http.HttpUtil; +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.config.AlipayConfig; +import com.macro.mall.tiny.dto.AliPayParam; +import com.macro.mall.tiny.mbg.model.PmsBrand; +import com.macro.mall.tiny.service.AlipayService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @auther macrozheng + * @description 支付宝支付Controller + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +@Controller +@Api(tags = "AlipayController") +@Tag(name = "AlipayController", description = "支付宝支付相关接口") +@RequestMapping("/alipay") +public class AlipayController { + + @Autowired + private AlipayConfig alipayConfig; + @Autowired + private AlipayService alipayService; + + @ApiOperation("支付宝电脑网站支付") + @RequestMapping(value = "/pay", method = RequestMethod.GET) + public void pay(AliPayParam aliPayParam, HttpServletResponse response) throws IOException { + response.setContentType("text/html;charset=" + alipayConfig.getCharset()); + response.getWriter().write(alipayService.pay(aliPayParam)); + response.getWriter().flush(); + response.getWriter().close(); + } + + @ApiOperation("支付宝手机网站支付") + @RequestMapping(value = "/webPay", method = RequestMethod.GET) + public void webPay(AliPayParam aliPayParam, HttpServletResponse response) throws IOException { + response.setContentType("text/html;charset=" + alipayConfig.getCharset()); + response.getWriter().write(alipayService.webPay(aliPayParam)); + response.getWriter().flush(); + response.getWriter().close(); + } + + @ApiOperation(value = "支付宝异步回调",notes = "必须为POST请求,执行成功返回success,执行失败返回failure") + @RequestMapping(value = "/notify", method = RequestMethod.POST) + public String notify(HttpServletRequest request){ + Map params = new HashMap<>(); + Map requestParams = request.getParameterMap(); + for (String name : requestParams.keySet()) { + params.put(name, request.getParameter(name)); + } + return alipayService.notify(params); + } + + @ApiOperation(value = "支付宝统一收单线下交易查询",notes = "订单支付成功返回:TRADE_SUCCESS") + @RequestMapping(value = "/query", method = RequestMethod.GET) + @ResponseBody + public CommonResult query(String outTradeNo,String tradeNo){ + return CommonResult.success(alipayService.query(outTradeNo,tradeNo)); + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/AlipayOrderController.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/AlipayOrderController.java new file mode 100644 index 00000000..20a48061 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/AlipayOrderController.java @@ -0,0 +1,49 @@ +package com.macro.mall.tiny.controller; + +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.mbg.model.AlipayOrder; +import com.macro.mall.tiny.service.AlipayOrderService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @auther macrozheng + * @description 支付宝订单管理Controller + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +@Controller +@Api(tags = "AlipayOrderController") +@Tag(name = "AlipayOrderController", description = "支付宝订单管理") +@RequestMapping("/alipayOrder") +public class AlipayOrderController { + + @Autowired + private AlipayOrderService alipayOrderService; + + @ApiOperation("创建订单") + @RequestMapping(value = "/create", method = RequestMethod.POST) + @ResponseBody + public CommonResult create() { + AlipayOrder order = alipayOrderService.create(); + return CommonResult.success(order); + } + + @ApiOperation("查询订单") + @RequestMapping(value = "/info/{orderId}", method = RequestMethod.GET) + @ResponseBody + public CommonResult info(@PathVariable String orderId) { + AlipayOrder order = alipayOrderService.info(orderId); + return CommonResult.success(order); + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java new file mode 100644 index 00000000..6d3295e5 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -0,0 +1,107 @@ +package com.macro.mall.tiny.controller; + +import com.macro.mall.tiny.common.api.CommonPage; +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.mbg.model.PmsBrand; +import com.macro.mall.tiny.service.PmsBrandService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +/** + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng + */ +@Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") +@RequestMapping("/brand") +public class PmsBrandController { + @Autowired + private PmsBrandService brandService; + + private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); + + @ApiOperation("获取所有品牌列表") + @RequestMapping(value = "listAll", method = RequestMethod.GET) + @ResponseBody + public CommonResult> getBrandList() { + return CommonResult.success(brandService.listAllBrand()); + } + + @ApiOperation("添加品牌") + @RequestMapping(value = "/create", method = RequestMethod.POST) + @ResponseBody + public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { + CommonResult commonResult; + int count = brandService.createBrand(pmsBrand); + if (count == 1) { + commonResult = CommonResult.success(pmsBrand); + LOGGER.debug("createBrand success:{}", pmsBrand); + } else { + commonResult = CommonResult.failed("操作失败"); + LOGGER.debug("createBrand failed:{}", pmsBrand); + } + return commonResult; + } + + @ApiOperation("更新指定id品牌信息") + @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) + @ResponseBody + public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { + CommonResult commonResult; + int count = brandService.updateBrand(id, pmsBrandDto); + if (count == 1) { + commonResult = CommonResult.success(pmsBrandDto); + LOGGER.debug("updateBrand success:{}", pmsBrandDto); + } else { + commonResult = CommonResult.failed("操作失败"); + LOGGER.debug("updateBrand failed:{}", pmsBrandDto); + } + return commonResult; + } + + @ApiOperation("删除指定id的品牌") + @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) + @ResponseBody + public CommonResult deleteBrand(@PathVariable("id") Long id) { + int count = brandService.deleteBrand(id); + if (count == 1) { + LOGGER.debug("deleteBrand success :id={}", id); + return CommonResult.success(null); + } else { + LOGGER.debug("deleteBrand failed :id={}", id); + return CommonResult.failed("操作失败"); + } + } + + @ApiOperation("分页查询品牌列表") + @RequestMapping(value = "/list", method = RequestMethod.GET) + @ResponseBody + public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") + @ApiParam("页码") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "3") + @ApiParam("每页数量") Integer pageSize) { + List brandList = brandService.listBrand(pageNum, pageSize); + return CommonResult.success(CommonPage.restPage(brandList)); + } + + @ApiOperation("获取指定id的品牌详情") + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public CommonResult brand(@PathVariable("id") Long id) { + return CommonResult.success(brandService.getBrand(id)); + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/dto/AliPayParam.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/dto/AliPayParam.java new file mode 100644 index 00000000..c718c68e --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/dto/AliPayParam.java @@ -0,0 +1,27 @@ +package com.macro.mall.tiny.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @auther macrozheng + * @description 支付宝支付请求参数 + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +@Data +public class AliPayParam { + /** + * 商户订单号,商家自定义,保持唯一性 + */ + private String outTradeNo; + /** + * 商品的标题/交易标题/订单标题/订单关键字等 + */ + private String subject; + /** + * 订单总金额,单位为元,精确到小数点后两位 + */ + private BigDecimal totalAmount; +} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java similarity index 100% rename from mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java rename to mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/Generator.java new file mode 100644 index 00000000..64248802 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -0,0 +1,40 @@ +package com.macro.mall.tiny.mbg; + +import org.mybatis.generator.api.MyBatisGenerator; +import org.mybatis.generator.config.Configuration; +import org.mybatis.generator.config.xml.ConfigurationParser; +import org.mybatis.generator.internal.DefaultShellCallback; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +/** + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng + */ +public class Generator { + public static void main(String[] args) throws Exception { + //MBG 执行过程中的警告信息 + List warnings = new ArrayList(); + //当生成的代码重复时,覆盖原代码 + boolean overwrite = true; + //读取我们的 MBG 配置文件 + InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); + ConfigurationParser cp = new ConfigurationParser(warnings); + Configuration config = cp.parseConfiguration(is); + is.close(); + + DefaultShellCallback callback = new DefaultShellCallback(overwrite); + //创建 MBG + MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); + //执行生成代码 + myBatisGenerator.generate(null); + //输出警告信息 + for (String warning : warnings) { + System.out.println(warning); + } + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/mapper/AlipayOrderMapper.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/mapper/AlipayOrderMapper.java new file mode 100644 index 00000000..48f1654c --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/mapper/AlipayOrderMapper.java @@ -0,0 +1,30 @@ +package com.macro.mall.tiny.mbg.mapper; + +import com.macro.mall.tiny.mbg.model.AlipayOrder; +import com.macro.mall.tiny.mbg.model.AlipayOrderExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface AlipayOrderMapper { + long countByExample(AlipayOrderExample example); + + int deleteByExample(AlipayOrderExample example); + + int deleteByPrimaryKey(Long id); + + int insert(AlipayOrder row); + + int insertSelective(AlipayOrder row); + + List selectByExample(AlipayOrderExample example); + + AlipayOrder selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("row") AlipayOrder row, @Param("example") AlipayOrderExample example); + + int updateByExample(@Param("row") AlipayOrder row, @Param("example") AlipayOrderExample example); + + int updateByPrimaryKeySelective(AlipayOrder row); + + int updateByPrimaryKey(AlipayOrder row); +} \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java new file mode 100644 index 00000000..408d4737 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -0,0 +1,36 @@ +package com.macro.mall.tiny.mbg.mapper; + +import com.macro.mall.tiny.mbg.model.PmsBrand; +import com.macro.mall.tiny.mbg.model.PmsBrandExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface PmsBrandMapper { + long countByExample(PmsBrandExample example); + + int deleteByExample(PmsBrandExample example); + + int deleteByPrimaryKey(Long id); + + int insert(PmsBrand row); + + int insertSelective(PmsBrand row); + + List selectByExampleWithBLOBs(PmsBrandExample example); + + List selectByExample(PmsBrandExample example); + + PmsBrand selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); + + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); + + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); + + int updateByPrimaryKeySelective(PmsBrand row); + + int updateByPrimaryKeyWithBLOBs(PmsBrand row); + + int updateByPrimaryKey(PmsBrand row); +} \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/AlipayOrder.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/AlipayOrder.java new file mode 100644 index 00000000..9c186673 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/AlipayOrder.java @@ -0,0 +1,128 @@ +package com.macro.mall.tiny.mbg.model; + +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +public class AlipayOrder implements Serializable { + private Long id; + + @ApiModelProperty(value = "订单ID") + private String orderId; + + @ApiModelProperty(value = "订单标题/商品标题/交易标题") + private String subject; + + @ApiModelProperty(value = "订单总金额") + private BigDecimal totalAmount; + + @ApiModelProperty(value = "交易状态") + private String tradeStatus; + + @ApiModelProperty(value = "支付宝交易号") + private String tradeNo; + + @ApiModelProperty(value = "买家支付宝账号") + private String buyerId; + + @ApiModelProperty(value = "交易付款时间") + private Date gmtPayment; + + @ApiModelProperty(value = "用户在交易中支付的金额") + private BigDecimal buyerPayAmount; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public BigDecimal getTotalAmount() { + return totalAmount; + } + + public void setTotalAmount(BigDecimal totalAmount) { + this.totalAmount = totalAmount; + } + + public String getTradeStatus() { + return tradeStatus; + } + + public void setTradeStatus(String tradeStatus) { + this.tradeStatus = tradeStatus; + } + + public String getTradeNo() { + return tradeNo; + } + + public void setTradeNo(String tradeNo) { + this.tradeNo = tradeNo; + } + + public String getBuyerId() { + return buyerId; + } + + public void setBuyerId(String buyerId) { + this.buyerId = buyerId; + } + + public Date getGmtPayment() { + return gmtPayment; + } + + public void setGmtPayment(Date gmtPayment) { + this.gmtPayment = gmtPayment; + } + + public BigDecimal getBuyerPayAmount() { + return buyerPayAmount; + } + + public void setBuyerPayAmount(BigDecimal buyerPayAmount) { + this.buyerPayAmount = buyerPayAmount; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", orderId=").append(orderId); + sb.append(", subject=").append(subject); + sb.append(", totalAmount=").append(totalAmount); + sb.append(", tradeStatus=").append(tradeStatus); + sb.append(", tradeNo=").append(tradeNo); + sb.append(", buyerId=").append(buyerId); + sb.append(", gmtPayment=").append(gmtPayment); + sb.append(", buyerPayAmount=").append(buyerPayAmount); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/AlipayOrderExample.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/AlipayOrderExample.java new file mode 100644 index 00000000..72350bf8 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/AlipayOrderExample.java @@ -0,0 +1,791 @@ +package com.macro.mall.tiny.mbg.model; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class AlipayOrderExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public AlipayOrderExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andOrderIdIsNull() { + addCriterion("order_id is null"); + return (Criteria) this; + } + + public Criteria andOrderIdIsNotNull() { + addCriterion("order_id is not null"); + return (Criteria) this; + } + + public Criteria andOrderIdEqualTo(String value) { + addCriterion("order_id =", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdNotEqualTo(String value) { + addCriterion("order_id <>", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdGreaterThan(String value) { + addCriterion("order_id >", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdGreaterThanOrEqualTo(String value) { + addCriterion("order_id >=", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdLessThan(String value) { + addCriterion("order_id <", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdLessThanOrEqualTo(String value) { + addCriterion("order_id <=", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdLike(String value) { + addCriterion("order_id like", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdNotLike(String value) { + addCriterion("order_id not like", value, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdIn(List values) { + addCriterion("order_id in", values, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdNotIn(List values) { + addCriterion("order_id not in", values, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdBetween(String value1, String value2) { + addCriterion("order_id between", value1, value2, "orderId"); + return (Criteria) this; + } + + public Criteria andOrderIdNotBetween(String value1, String value2) { + addCriterion("order_id not between", value1, value2, "orderId"); + return (Criteria) this; + } + + public Criteria andSubjectIsNull() { + addCriterion("subject is null"); + return (Criteria) this; + } + + public Criteria andSubjectIsNotNull() { + addCriterion("subject is not null"); + return (Criteria) this; + } + + public Criteria andSubjectEqualTo(String value) { + addCriterion("subject =", value, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectNotEqualTo(String value) { + addCriterion("subject <>", value, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectGreaterThan(String value) { + addCriterion("subject >", value, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectGreaterThanOrEqualTo(String value) { + addCriterion("subject >=", value, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectLessThan(String value) { + addCriterion("subject <", value, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectLessThanOrEqualTo(String value) { + addCriterion("subject <=", value, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectLike(String value) { + addCriterion("subject like", value, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectNotLike(String value) { + addCriterion("subject not like", value, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectIn(List values) { + addCriterion("subject in", values, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectNotIn(List values) { + addCriterion("subject not in", values, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectBetween(String value1, String value2) { + addCriterion("subject between", value1, value2, "subject"); + return (Criteria) this; + } + + public Criteria andSubjectNotBetween(String value1, String value2) { + addCriterion("subject not between", value1, value2, "subject"); + return (Criteria) this; + } + + public Criteria andTotalAmountIsNull() { + addCriterion("total_amount is null"); + return (Criteria) this; + } + + public Criteria andTotalAmountIsNotNull() { + addCriterion("total_amount is not null"); + return (Criteria) this; + } + + public Criteria andTotalAmountEqualTo(BigDecimal value) { + addCriterion("total_amount =", value, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountNotEqualTo(BigDecimal value) { + addCriterion("total_amount <>", value, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountGreaterThan(BigDecimal value) { + addCriterion("total_amount >", value, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("total_amount >=", value, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountLessThan(BigDecimal value) { + addCriterion("total_amount <", value, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountLessThanOrEqualTo(BigDecimal value) { + addCriterion("total_amount <=", value, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountIn(List values) { + addCriterion("total_amount in", values, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountNotIn(List values) { + addCriterion("total_amount not in", values, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("total_amount between", value1, value2, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTotalAmountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("total_amount not between", value1, value2, "totalAmount"); + return (Criteria) this; + } + + public Criteria andTradeStatusIsNull() { + addCriterion("trade_status is null"); + return (Criteria) this; + } + + public Criteria andTradeStatusIsNotNull() { + addCriterion("trade_status is not null"); + return (Criteria) this; + } + + public Criteria andTradeStatusEqualTo(String value) { + addCriterion("trade_status =", value, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusNotEqualTo(String value) { + addCriterion("trade_status <>", value, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusGreaterThan(String value) { + addCriterion("trade_status >", value, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusGreaterThanOrEqualTo(String value) { + addCriterion("trade_status >=", value, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusLessThan(String value) { + addCriterion("trade_status <", value, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusLessThanOrEqualTo(String value) { + addCriterion("trade_status <=", value, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusLike(String value) { + addCriterion("trade_status like", value, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusNotLike(String value) { + addCriterion("trade_status not like", value, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusIn(List values) { + addCriterion("trade_status in", values, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusNotIn(List values) { + addCriterion("trade_status not in", values, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusBetween(String value1, String value2) { + addCriterion("trade_status between", value1, value2, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeStatusNotBetween(String value1, String value2) { + addCriterion("trade_status not between", value1, value2, "tradeStatus"); + return (Criteria) this; + } + + public Criteria andTradeNoIsNull() { + addCriterion("trade_no is null"); + return (Criteria) this; + } + + public Criteria andTradeNoIsNotNull() { + addCriterion("trade_no is not null"); + return (Criteria) this; + } + + public Criteria andTradeNoEqualTo(String value) { + addCriterion("trade_no =", value, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoNotEqualTo(String value) { + addCriterion("trade_no <>", value, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoGreaterThan(String value) { + addCriterion("trade_no >", value, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoGreaterThanOrEqualTo(String value) { + addCriterion("trade_no >=", value, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoLessThan(String value) { + addCriterion("trade_no <", value, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoLessThanOrEqualTo(String value) { + addCriterion("trade_no <=", value, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoLike(String value) { + addCriterion("trade_no like", value, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoNotLike(String value) { + addCriterion("trade_no not like", value, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoIn(List values) { + addCriterion("trade_no in", values, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoNotIn(List values) { + addCriterion("trade_no not in", values, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoBetween(String value1, String value2) { + addCriterion("trade_no between", value1, value2, "tradeNo"); + return (Criteria) this; + } + + public Criteria andTradeNoNotBetween(String value1, String value2) { + addCriterion("trade_no not between", value1, value2, "tradeNo"); + return (Criteria) this; + } + + public Criteria andBuyerIdIsNull() { + addCriterion("buyer_id is null"); + return (Criteria) this; + } + + public Criteria andBuyerIdIsNotNull() { + addCriterion("buyer_id is not null"); + return (Criteria) this; + } + + public Criteria andBuyerIdEqualTo(String value) { + addCriterion("buyer_id =", value, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdNotEqualTo(String value) { + addCriterion("buyer_id <>", value, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdGreaterThan(String value) { + addCriterion("buyer_id >", value, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdGreaterThanOrEqualTo(String value) { + addCriterion("buyer_id >=", value, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdLessThan(String value) { + addCriterion("buyer_id <", value, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdLessThanOrEqualTo(String value) { + addCriterion("buyer_id <=", value, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdLike(String value) { + addCriterion("buyer_id like", value, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdNotLike(String value) { + addCriterion("buyer_id not like", value, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdIn(List values) { + addCriterion("buyer_id in", values, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdNotIn(List values) { + addCriterion("buyer_id not in", values, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdBetween(String value1, String value2) { + addCriterion("buyer_id between", value1, value2, "buyerId"); + return (Criteria) this; + } + + public Criteria andBuyerIdNotBetween(String value1, String value2) { + addCriterion("buyer_id not between", value1, value2, "buyerId"); + return (Criteria) this; + } + + public Criteria andGmtPaymentIsNull() { + addCriterion("gmt_payment is null"); + return (Criteria) this; + } + + public Criteria andGmtPaymentIsNotNull() { + addCriterion("gmt_payment is not null"); + return (Criteria) this; + } + + public Criteria andGmtPaymentEqualTo(Date value) { + addCriterion("gmt_payment =", value, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentNotEqualTo(Date value) { + addCriterion("gmt_payment <>", value, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentGreaterThan(Date value) { + addCriterion("gmt_payment >", value, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentGreaterThanOrEqualTo(Date value) { + addCriterion("gmt_payment >=", value, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentLessThan(Date value) { + addCriterion("gmt_payment <", value, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentLessThanOrEqualTo(Date value) { + addCriterion("gmt_payment <=", value, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentIn(List values) { + addCriterion("gmt_payment in", values, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentNotIn(List values) { + addCriterion("gmt_payment not in", values, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentBetween(Date value1, Date value2) { + addCriterion("gmt_payment between", value1, value2, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andGmtPaymentNotBetween(Date value1, Date value2) { + addCriterion("gmt_payment not between", value1, value2, "gmtPayment"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountIsNull() { + addCriterion("buyer_pay_amount is null"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountIsNotNull() { + addCriterion("buyer_pay_amount is not null"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountEqualTo(BigDecimal value) { + addCriterion("buyer_pay_amount =", value, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountNotEqualTo(BigDecimal value) { + addCriterion("buyer_pay_amount <>", value, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountGreaterThan(BigDecimal value) { + addCriterion("buyer_pay_amount >", value, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountGreaterThanOrEqualTo(BigDecimal value) { + addCriterion("buyer_pay_amount >=", value, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountLessThan(BigDecimal value) { + addCriterion("buyer_pay_amount <", value, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountLessThanOrEqualTo(BigDecimal value) { + addCriterion("buyer_pay_amount <=", value, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountIn(List values) { + addCriterion("buyer_pay_amount in", values, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountNotIn(List values) { + addCriterion("buyer_pay_amount not in", values, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("buyer_pay_amount between", value1, value2, "buyerPayAmount"); + return (Criteria) this; + } + + public Criteria andBuyerPayAmountNotBetween(BigDecimal value1, BigDecimal value2) { + addCriterion("buyer_pay_amount not between", value1, value2, "buyerPayAmount"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java new file mode 100644 index 00000000..5750cd16 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java @@ -0,0 +1,151 @@ +package com.macro.mall.tiny.mbg.model; + +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; + +public class PmsBrand implements Serializable { + @ApiModelProperty(value = "主键ID") + private Long id; + + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "首字母") + private String firstLetter; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") + private Integer factoryStatus; + + @ApiModelProperty(value = "是否显示") + private Integer showStatus; + + @ApiModelProperty(value = "产品数量") + private Integer productCount; + + @ApiModelProperty(value = "产品评论数量") + private Integer productCommentCount; + + @ApiModelProperty(value = "品牌logo") + private String logo; + + @ApiModelProperty(value = "专区大图") + private String bigPic; + + @ApiModelProperty(value = "品牌故事") + private String brandStory; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getFirstLetter() { + return firstLetter; + } + + public void setFirstLetter(String firstLetter) { + this.firstLetter = firstLetter; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Integer getFactoryStatus() { + return factoryStatus; + } + + public void setFactoryStatus(Integer factoryStatus) { + this.factoryStatus = factoryStatus; + } + + public Integer getShowStatus() { + return showStatus; + } + + public void setShowStatus(Integer showStatus) { + this.showStatus = showStatus; + } + + public Integer getProductCount() { + return productCount; + } + + public void setProductCount(Integer productCount) { + this.productCount = productCount; + } + + public Integer getProductCommentCount() { + return productCommentCount; + } + + public void setProductCommentCount(Integer productCommentCount) { + this.productCommentCount = productCommentCount; + } + + public String getLogo() { + return logo; + } + + public void setLogo(String logo) { + this.logo = logo; + } + + public String getBigPic() { + return bigPic; + } + + public void setBigPic(String bigPic) { + this.bigPic = bigPic; + } + + public String getBrandStory() { + return brandStory; + } + + public void setBrandStory(String brandStory) { + this.brandStory = brandStory; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", name=").append(name); + sb.append(", firstLetter=").append(firstLetter); + sb.append(", sort=").append(sort); + sb.append(", factoryStatus=").append(factoryStatus); + sb.append(", showStatus=").append(showStatus); + sb.append(", productCount=").append(productCount); + sb.append(", productCommentCount=").append(productCommentCount); + sb.append(", logo=").append(logo); + sb.append(", bigPic=").append(bigPic); + sb.append(", brandStory=").append(brandStory); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java new file mode 100644 index 00000000..c7e5880b --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -0,0 +1,839 @@ +package com.macro.mall.tiny.mbg.model; + +import java.util.ArrayList; +import java.util.List; + +public class PmsBrandExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public PmsBrandExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andFirstLetterIsNull() { + addCriterion("first_letter is null"); + return (Criteria) this; + } + + public Criteria andFirstLetterIsNotNull() { + addCriterion("first_letter is not null"); + return (Criteria) this; + } + + public Criteria andFirstLetterEqualTo(String value) { + addCriterion("first_letter =", value, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterNotEqualTo(String value) { + addCriterion("first_letter <>", value, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterGreaterThan(String value) { + addCriterion("first_letter >", value, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { + addCriterion("first_letter >=", value, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterLessThan(String value) { + addCriterion("first_letter <", value, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterLessThanOrEqualTo(String value) { + addCriterion("first_letter <=", value, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterLike(String value) { + addCriterion("first_letter like", value, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterNotLike(String value) { + addCriterion("first_letter not like", value, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterIn(List values) { + addCriterion("first_letter in", values, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterNotIn(List values) { + addCriterion("first_letter not in", values, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterBetween(String value1, String value2) { + addCriterion("first_letter between", value1, value2, "firstLetter"); + return (Criteria) this; + } + + public Criteria andFirstLetterNotBetween(String value1, String value2) { + addCriterion("first_letter not between", value1, value2, "firstLetter"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(Integer value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(Integer value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(Integer value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(Integer value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(Integer value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(Integer value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(Integer value1, Integer value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(Integer value1, Integer value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andFactoryStatusIsNull() { + addCriterion("factory_status is null"); + return (Criteria) this; + } + + public Criteria andFactoryStatusIsNotNull() { + addCriterion("factory_status is not null"); + return (Criteria) this; + } + + public Criteria andFactoryStatusEqualTo(Integer value) { + addCriterion("factory_status =", value, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusNotEqualTo(Integer value) { + addCriterion("factory_status <>", value, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusGreaterThan(Integer value) { + addCriterion("factory_status >", value, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("factory_status >=", value, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusLessThan(Integer value) { + addCriterion("factory_status <", value, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { + addCriterion("factory_status <=", value, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusIn(List values) { + addCriterion("factory_status in", values, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusNotIn(List values) { + addCriterion("factory_status not in", values, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { + addCriterion("factory_status between", value1, value2, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { + addCriterion("factory_status not between", value1, value2, "factoryStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusIsNull() { + addCriterion("show_status is null"); + return (Criteria) this; + } + + public Criteria andShowStatusIsNotNull() { + addCriterion("show_status is not null"); + return (Criteria) this; + } + + public Criteria andShowStatusEqualTo(Integer value) { + addCriterion("show_status =", value, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusNotEqualTo(Integer value) { + addCriterion("show_status <>", value, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusGreaterThan(Integer value) { + addCriterion("show_status >", value, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("show_status >=", value, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusLessThan(Integer value) { + addCriterion("show_status <", value, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusLessThanOrEqualTo(Integer value) { + addCriterion("show_status <=", value, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusIn(List values) { + addCriterion("show_status in", values, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusNotIn(List values) { + addCriterion("show_status not in", values, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusBetween(Integer value1, Integer value2) { + addCriterion("show_status between", value1, value2, "showStatus"); + return (Criteria) this; + } + + public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { + addCriterion("show_status not between", value1, value2, "showStatus"); + return (Criteria) this; + } + + public Criteria andProductCountIsNull() { + addCriterion("product_count is null"); + return (Criteria) this; + } + + public Criteria andProductCountIsNotNull() { + addCriterion("product_count is not null"); + return (Criteria) this; + } + + public Criteria andProductCountEqualTo(Integer value) { + addCriterion("product_count =", value, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountNotEqualTo(Integer value) { + addCriterion("product_count <>", value, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountGreaterThan(Integer value) { + addCriterion("product_count >", value, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { + addCriterion("product_count >=", value, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountLessThan(Integer value) { + addCriterion("product_count <", value, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountLessThanOrEqualTo(Integer value) { + addCriterion("product_count <=", value, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountIn(List values) { + addCriterion("product_count in", values, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountNotIn(List values) { + addCriterion("product_count not in", values, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountBetween(Integer value1, Integer value2) { + addCriterion("product_count between", value1, value2, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCountNotBetween(Integer value1, Integer value2) { + addCriterion("product_count not between", value1, value2, "productCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountIsNull() { + addCriterion("product_comment_count is null"); + return (Criteria) this; + } + + public Criteria andProductCommentCountIsNotNull() { + addCriterion("product_comment_count is not null"); + return (Criteria) this; + } + + public Criteria andProductCommentCountEqualTo(Integer value) { + addCriterion("product_comment_count =", value, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountNotEqualTo(Integer value) { + addCriterion("product_comment_count <>", value, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountGreaterThan(Integer value) { + addCriterion("product_comment_count >", value, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { + addCriterion("product_comment_count >=", value, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountLessThan(Integer value) { + addCriterion("product_comment_count <", value, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { + addCriterion("product_comment_count <=", value, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountIn(List values) { + addCriterion("product_comment_count in", values, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountNotIn(List values) { + addCriterion("product_comment_count not in", values, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { + addCriterion("product_comment_count between", value1, value2, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { + addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); + return (Criteria) this; + } + + public Criteria andLogoIsNull() { + addCriterion("logo is null"); + return (Criteria) this; + } + + public Criteria andLogoIsNotNull() { + addCriterion("logo is not null"); + return (Criteria) this; + } + + public Criteria andLogoEqualTo(String value) { + addCriterion("logo =", value, "logo"); + return (Criteria) this; + } + + public Criteria andLogoNotEqualTo(String value) { + addCriterion("logo <>", value, "logo"); + return (Criteria) this; + } + + public Criteria andLogoGreaterThan(String value) { + addCriterion("logo >", value, "logo"); + return (Criteria) this; + } + + public Criteria andLogoGreaterThanOrEqualTo(String value) { + addCriterion("logo >=", value, "logo"); + return (Criteria) this; + } + + public Criteria andLogoLessThan(String value) { + addCriterion("logo <", value, "logo"); + return (Criteria) this; + } + + public Criteria andLogoLessThanOrEqualTo(String value) { + addCriterion("logo <=", value, "logo"); + return (Criteria) this; + } + + public Criteria andLogoLike(String value) { + addCriterion("logo like", value, "logo"); + return (Criteria) this; + } + + public Criteria andLogoNotLike(String value) { + addCriterion("logo not like", value, "logo"); + return (Criteria) this; + } + + public Criteria andLogoIn(List values) { + addCriterion("logo in", values, "logo"); + return (Criteria) this; + } + + public Criteria andLogoNotIn(List values) { + addCriterion("logo not in", values, "logo"); + return (Criteria) this; + } + + public Criteria andLogoBetween(String value1, String value2) { + addCriterion("logo between", value1, value2, "logo"); + return (Criteria) this; + } + + public Criteria andLogoNotBetween(String value1, String value2) { + addCriterion("logo not between", value1, value2, "logo"); + return (Criteria) this; + } + + public Criteria andBigPicIsNull() { + addCriterion("big_pic is null"); + return (Criteria) this; + } + + public Criteria andBigPicIsNotNull() { + addCriterion("big_pic is not null"); + return (Criteria) this; + } + + public Criteria andBigPicEqualTo(String value) { + addCriterion("big_pic =", value, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicNotEqualTo(String value) { + addCriterion("big_pic <>", value, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicGreaterThan(String value) { + addCriterion("big_pic >", value, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicGreaterThanOrEqualTo(String value) { + addCriterion("big_pic >=", value, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicLessThan(String value) { + addCriterion("big_pic <", value, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicLessThanOrEqualTo(String value) { + addCriterion("big_pic <=", value, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicLike(String value) { + addCriterion("big_pic like", value, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicNotLike(String value) { + addCriterion("big_pic not like", value, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicIn(List values) { + addCriterion("big_pic in", values, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicNotIn(List values) { + addCriterion("big_pic not in", values, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicBetween(String value1, String value2) { + addCriterion("big_pic between", value1, value2, "bigPic"); + return (Criteria) this; + } + + public Criteria andBigPicNotBetween(String value1, String value2) { + addCriterion("big_pic not between", value1, value2, "bigPic"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/AlipayOrderService.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/AlipayOrderService.java new file mode 100644 index 00000000..2f9a5222 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/AlipayOrderService.java @@ -0,0 +1,21 @@ +package com.macro.mall.tiny.service; + +import com.macro.mall.tiny.mbg.model.AlipayOrder; + +/** + * @auther macrozheng + * @description 支付宝订单管理Service + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +public interface AlipayOrderService { + /** + * 创建订单 + */ + AlipayOrder create(); + + /** + * 根据订单ID查询订单 + */ + AlipayOrder info(String orderId); +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/AlipayService.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/AlipayService.java new file mode 100644 index 00000000..7ef45648 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/AlipayService.java @@ -0,0 +1,36 @@ +package com.macro.mall.tiny.service; + +import com.alipay.api.AlipayApiException; +import com.macro.mall.tiny.dto.AliPayParam; + +import java.util.Map; + +/** + * @auther macrozheng + * @description 支付宝支付Service + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +public interface AlipayService { + /** + * 根据提交参数生成电脑支付页面 + */ + String pay(AliPayParam aliPayParam); + + /** + * 支付宝异步回调处理 + */ + String notify(Map params); + + /** + * @param outTradeNo 商户订单编号 + * @param tradeNo 支付宝交易编号 + * @return 支付宝交易状态 + */ + String query(String outTradeNo, String tradeNo); + + /** + * 根据提交参数生成手机支付页面 + */ + String webPay(AliPayParam aliPayParam); +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java new file mode 100644 index 00000000..17d3b94e --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -0,0 +1,26 @@ +package com.macro.mall.tiny.service; + + +import com.macro.mall.tiny.mbg.model.PmsBrand; + +import java.util.List; + +/** + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng + */ +public interface PmsBrandService { + List listAllBrand(); + + int createBrand(PmsBrand brand); + + int updateBrand(Long id, PmsBrand brand); + + int deleteBrand(Long id); + + List listBrand(int pageNum, int pageSize); + + PmsBrand getBrand(Long id); +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/AlipayOrderServiceImpl.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/AlipayOrderServiceImpl.java new file mode 100644 index 00000000..2830a0d8 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/AlipayOrderServiceImpl.java @@ -0,0 +1,52 @@ +package com.macro.mall.tiny.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.RandomUtil; +import com.macro.mall.tiny.mbg.mapper.AlipayOrderMapper; +import com.macro.mall.tiny.mbg.model.AlipayOrder; +import com.macro.mall.tiny.mbg.model.AlipayOrderExample; +import com.macro.mall.tiny.service.AlipayOrderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + * @auther macrozheng + * @description 支付宝订单管理Service实现类 + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +@Service +public class AlipayOrderServiceImpl implements AlipayOrderService { + @Autowired + private AlipayOrderMapper alipayOrderMapper; + + @Override + public AlipayOrder create() { + String orderId = new SimpleDateFormat("yyyyMMdd").format(new Date()) + System.currentTimeMillis(); + AlipayOrder alipayOrder = new AlipayOrder(); + alipayOrder.setOrderId(orderId); + //模拟数量 + int quantity = RandomUtil.randomInt(1, 5); + BigDecimal price = new BigDecimal(20); + alipayOrder.setSubject("测试商品"+quantity+"个"); + alipayOrder.setTotalAmount(price.multiply(new BigDecimal(quantity))); + alipayOrderMapper.insert(alipayOrder); + return alipayOrder; + } + + @Override + public AlipayOrder info(String orderId) { + AlipayOrderExample alipayOrderExample = new AlipayOrderExample(); + alipayOrderExample.createCriteria().andOrderIdEqualTo(orderId); + List orderList = alipayOrderMapper.selectByExample(alipayOrderExample); + if(CollUtil.isNotEmpty(orderList)){ + return orderList.get(0); + } + return null; + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/AlipayServiceImpl.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/AlipayServiceImpl.java new file mode 100644 index 00000000..db0b98c5 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/AlipayServiceImpl.java @@ -0,0 +1,165 @@ +package com.macro.mall.tiny.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.internal.util.AlipaySignature; +import com.alipay.api.request.AlipayTradePagePayRequest; +import com.alipay.api.request.AlipayTradeQueryRequest; +import com.alipay.api.request.AlipayTradeWapPayRequest; +import com.alipay.api.response.AlipayTradeQueryResponse; +import com.macro.mall.tiny.config.AlipayConfig; +import com.macro.mall.tiny.dto.AliPayParam; +import com.macro.mall.tiny.mbg.mapper.AlipayOrderMapper; +import com.macro.mall.tiny.mbg.model.AlipayOrder; +import com.macro.mall.tiny.mbg.model.AlipayOrderExample; +import com.macro.mall.tiny.service.AlipayOrderService; +import com.macro.mall.tiny.service.AlipayService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * @auther macrozheng + * @description 支付宝支付Service实现类 + * @date 2023/9/8 + * @github https://github.com/macrozheng + */ +@Slf4j +@Service +public class AlipayServiceImpl implements AlipayService { + @Autowired + private AlipayConfig alipayConfig; + @Autowired + private AlipayClient alipayClient; + @Autowired + private AlipayOrderMapper alipayOrderMapper; + @Override + public String pay(AliPayParam aliPayParam) { + AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); + if(StrUtil.isNotEmpty(alipayConfig.getNotifyUrl())){ + //异步接收地址,公网可访问 + request.setNotifyUrl(alipayConfig.getNotifyUrl()); + } + if(StrUtil.isNotEmpty(alipayConfig.getReturnUrl())){ + //同步跳转地址 + request.setReturnUrl(alipayConfig.getReturnUrl()); + } + //******必传参数****** + JSONObject bizContent = new JSONObject(); + //商户订单号,商家自定义,保持唯一性 + bizContent.put("out_trade_no", aliPayParam.getOutTradeNo()); + //支付金额,最小值0.01元 + bizContent.put("total_amount", aliPayParam.getTotalAmount()); + //订单标题,不可使用特殊符号 + bizContent.put("subject", aliPayParam.getSubject()); + //电脑网站支付场景固定传值FAST_INSTANT_TRADE_PAY + bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY"); + request.setBizContent(bizContent.toString()); + String formHtml = null; + try { + formHtml = alipayClient.pageExecute(request).getBody(); + } catch (AlipayApiException e) { + e.printStackTrace(); + } + return formHtml; + } + + @Override + public String notify(Map params) { + String result = "failure"; + boolean signVerified = false; + try { + //调用SDK验证签名 + signVerified = AlipaySignature.rsaCheckV1(params, alipayConfig.getAlipayPublicKey(), alipayConfig.getCharset(), alipayConfig.getSignType()); + } catch (AlipayApiException e) { + log.error("支付回调签名校验异常!",e); + e.printStackTrace(); + } + if (signVerified) { + String tradeStatus = params.get("trade_status"); + if("TRADE_SUCCESS".equals(tradeStatus)){ + result = "success"; + AlipayOrder alipayOrder = BeanUtil.mapToBean(params, AlipayOrder.class, true, null); + alipayOrder.setOrderId(params.get("out_trade_no")); + log.info("notify方法被调用了,alipayOrder:{}",JSONUtil.toJsonStr(alipayOrder)); + //根据orderId查询订单,并修改订单状态 + AlipayOrderExample example = new AlipayOrderExample(); + example.createCriteria().andOrderIdEqualTo(alipayOrder.getOrderId()); + alipayOrderMapper.updateByExampleSelective(alipayOrder,example); + }else{ + log.warn("订单未支付成功,trade_status:{}",tradeStatus); + } + } else { + log.warn("支付回调签名校验失败!"); + } + return result; + } + + @Override + public String query(String outTradeNo, String tradeNo) { + AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); + //******必传参数****** + JSONObject bizContent = new JSONObject(); + //设置查询参数,out_trade_no和trade_no至少传一个 + if(StrUtil.isNotEmpty(outTradeNo)){ + bizContent.put("out_trade_no",outTradeNo); + } + if(StrUtil.isNotEmpty(tradeNo)){ + bizContent.put("trade_no",tradeNo); + } + //交易结算信息: trade_settle_info + String[] queryOptions = {"trade_settle_info"}; + bizContent.put("query_options", queryOptions); + request.setBizContent(bizContent.toString()); + AlipayTradeQueryResponse response = null; + try { + response = alipayClient.execute(request); + } catch (AlipayApiException e) { + log.error("查询支付宝账单异常!",e); + } + if(response.isSuccess()){ + log.info("查询支付宝账单成功!"); + } else { + log.error("查询支付宝账单失败!"); + } + //交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) + return response.getTradeStatus(); + } + + @Override + public String webPay(AliPayParam aliPayParam) { + AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest (); + if(StrUtil.isNotEmpty(alipayConfig.getNotifyUrl())){ + //异步接收地址,公网可访问 + request.setNotifyUrl(alipayConfig.getNotifyUrl()); + } + if(StrUtil.isNotEmpty(alipayConfig.getReturnUrl())){ + //同步跳转地址 + request.setReturnUrl(alipayConfig.getReturnUrl()); + } + //******必传参数****** + JSONObject bizContent = new JSONObject(); + //商户订单号,商家自定义,保持唯一性 + bizContent.put("out_trade_no", aliPayParam.getOutTradeNo()); + //支付金额,最小值0.01元 + bizContent.put("total_amount", aliPayParam.getTotalAmount()); + //订单标题,不可使用特殊符号 + bizContent.put("subject", aliPayParam.getSubject()); + //手机网站支付默认传值FAST_INSTANT_TRADE_PAY + bizContent.put("product_code", "QUICK_WAP_WAY"); + request.setBizContent(bizContent.toString()); + String formHtml = null; + try { + formHtml = alipayClient.pageExecute(request).getBody(); + } catch (AlipayApiException e) { + e.printStackTrace(); + } + return formHtml; + } +} diff --git a/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java new file mode 100644 index 00000000..a3e8ac15 --- /dev/null +++ b/mall-tiny-alipay/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -0,0 +1,55 @@ +package com.macro.mall.tiny.service.impl; + +import com.github.pagehelper.PageHelper; +import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; +import com.macro.mall.tiny.mbg.model.PmsBrand; +import com.macro.mall.tiny.mbg.model.PmsBrandExample; +import com.macro.mall.tiny.service.PmsBrandService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng + */ +@Service +public class PmsBrandServiceImpl implements PmsBrandService { + @Autowired + private PmsBrandMapper brandMapper; + + @Override + public List listAllBrand() { + return brandMapper.selectByExample(new PmsBrandExample()); + } + + @Override + public int createBrand(PmsBrand brand) { + return brandMapper.insertSelective(brand); + } + + @Override + public int updateBrand(Long id, PmsBrand brand) { + brand.setId(id); + return brandMapper.updateByPrimaryKeySelective(brand); + } + + @Override + public int deleteBrand(Long id) { + return brandMapper.deleteByPrimaryKey(id); + } + + @Override + public List listBrand(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + return brandMapper.selectByExample(new PmsBrandExample()); + } + + @Override + public PmsBrand getBrand(Long id) { + return brandMapper.selectByPrimaryKey(id); + } +} diff --git a/mall-tiny-alipay/src/main/resources/application.yml b/mall-tiny-alipay/src/main/resources/application.yml new file mode 100644 index 00000000..ccc89756 --- /dev/null +++ b/mall-tiny-alipay/src/main/resources/application.yml @@ -0,0 +1,24 @@ +server: + port: 8080 + +spring: + datasource: + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + username: root + password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER + +mybatis: + mapper-locations: + - classpath:dao/*.xml + - classpath*:com/**/mapper/*.xml + +alipay: + gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do + appId: your appId + alipayPublicKey: your alipayPublicKey + appPrivateKey: your appPrivateKey + returnUrl: http://localhost:8080/swagger-ui/ + notifyUrl: diff --git a/mall-tiny-alipay/src/main/resources/com/macro/mall/tiny/mbg/mapper/AlipayOrderMapper.xml b/mall-tiny-alipay/src/main/resources/com/macro/mall/tiny/mbg/mapper/AlipayOrderMapper.xml new file mode 100644 index 00000000..98324b6e --- /dev/null +++ b/mall-tiny-alipay/src/main/resources/com/macro/mall/tiny/mbg/mapper/AlipayOrderMapper.xml @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, order_id, subject, total_amount, trade_status, trade_no, buyer_id, gmt_payment, + buyer_pay_amount + + + + + delete from alipay_order + where id = #{id,jdbcType=BIGINT} + + + delete from alipay_order + + + + + + + SELECT LAST_INSERT_ID() + + insert into alipay_order (order_id, subject, total_amount, + trade_status, trade_no, buyer_id, + gmt_payment, buyer_pay_amount) + values (#{orderId,jdbcType=VARCHAR}, #{subject,jdbcType=VARCHAR}, #{totalAmount,jdbcType=DECIMAL}, + #{tradeStatus,jdbcType=VARCHAR}, #{tradeNo,jdbcType=VARCHAR}, #{buyerId,jdbcType=VARCHAR}, + #{gmtPayment,jdbcType=TIMESTAMP}, #{buyerPayAmount,jdbcType=DECIMAL}) + + + + SELECT LAST_INSERT_ID() + + insert into alipay_order + + + order_id, + + + subject, + + + total_amount, + + + trade_status, + + + trade_no, + + + buyer_id, + + + gmt_payment, + + + buyer_pay_amount, + + + + + #{orderId,jdbcType=VARCHAR}, + + + #{subject,jdbcType=VARCHAR}, + + + #{totalAmount,jdbcType=DECIMAL}, + + + #{tradeStatus,jdbcType=VARCHAR}, + + + #{tradeNo,jdbcType=VARCHAR}, + + + #{buyerId,jdbcType=VARCHAR}, + + + #{gmtPayment,jdbcType=TIMESTAMP}, + + + #{buyerPayAmount,jdbcType=DECIMAL}, + + + + + + update alipay_order + + + id = #{row.id,jdbcType=BIGINT}, + + + order_id = #{row.orderId,jdbcType=VARCHAR}, + + + subject = #{row.subject,jdbcType=VARCHAR}, + + + total_amount = #{row.totalAmount,jdbcType=DECIMAL}, + + + trade_status = #{row.tradeStatus,jdbcType=VARCHAR}, + + + trade_no = #{row.tradeNo,jdbcType=VARCHAR}, + + + buyer_id = #{row.buyerId,jdbcType=VARCHAR}, + + + gmt_payment = #{row.gmtPayment,jdbcType=TIMESTAMP}, + + + buyer_pay_amount = #{row.buyerPayAmount,jdbcType=DECIMAL}, + + + + + + + + update alipay_order + set id = #{row.id,jdbcType=BIGINT}, + order_id = #{row.orderId,jdbcType=VARCHAR}, + subject = #{row.subject,jdbcType=VARCHAR}, + total_amount = #{row.totalAmount,jdbcType=DECIMAL}, + trade_status = #{row.tradeStatus,jdbcType=VARCHAR}, + trade_no = #{row.tradeNo,jdbcType=VARCHAR}, + buyer_id = #{row.buyerId,jdbcType=VARCHAR}, + gmt_payment = #{row.gmtPayment,jdbcType=TIMESTAMP}, + buyer_pay_amount = #{row.buyerPayAmount,jdbcType=DECIMAL} + + + + + + update alipay_order + + + order_id = #{orderId,jdbcType=VARCHAR}, + + + subject = #{subject,jdbcType=VARCHAR}, + + + total_amount = #{totalAmount,jdbcType=DECIMAL}, + + + trade_status = #{tradeStatus,jdbcType=VARCHAR}, + + + trade_no = #{tradeNo,jdbcType=VARCHAR}, + + + buyer_id = #{buyerId,jdbcType=VARCHAR}, + + + gmt_payment = #{gmtPayment,jdbcType=TIMESTAMP}, + + + buyer_pay_amount = #{buyerPayAmount,jdbcType=DECIMAL}, + + + where id = #{id,jdbcType=BIGINT} + + + update alipay_order + set order_id = #{orderId,jdbcType=VARCHAR}, + subject = #{subject,jdbcType=VARCHAR}, + total_amount = #{totalAmount,jdbcType=DECIMAL}, + trade_status = #{tradeStatus,jdbcType=VARCHAR}, + trade_no = #{tradeNo,jdbcType=VARCHAR}, + buyer_id = #{buyerId,jdbcType=VARCHAR}, + gmt_payment = #{gmtPayment,jdbcType=TIMESTAMP}, + buyer_pay_amount = #{buyerPayAmount,jdbcType=DECIMAL} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-alipay/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml new file mode 100644 index 00000000..8d47261a --- /dev/null +++ b/mall-tiny-alipay/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -0,0 +1,358 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, + logo, big_pic + + + brand_story + + + + + + delete from pms_brand + where id = #{id,jdbcType=BIGINT} + + + delete from pms_brand + + + + + + + SELECT LAST_INSERT_ID() + + insert into pms_brand (name, first_letter, sort, + factory_status, show_status, product_count, + product_comment_count, logo, big_pic, + brand_story) + values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, + #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, + #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, + #{brandStory,jdbcType=LONGVARCHAR}) + + + + SELECT LAST_INSERT_ID() + + insert into pms_brand + + + name, + + + first_letter, + + + sort, + + + factory_status, + + + show_status, + + + product_count, + + + product_comment_count, + + + logo, + + + big_pic, + + + brand_story, + + + + + #{name,jdbcType=VARCHAR}, + + + #{firstLetter,jdbcType=VARCHAR}, + + + #{sort,jdbcType=INTEGER}, + + + #{factoryStatus,jdbcType=INTEGER}, + + + #{showStatus,jdbcType=INTEGER}, + + + #{productCount,jdbcType=INTEGER}, + + + #{productCommentCount,jdbcType=INTEGER}, + + + #{logo,jdbcType=VARCHAR}, + + + #{bigPic,jdbcType=VARCHAR}, + + + #{brandStory,jdbcType=LONGVARCHAR}, + + + + + + update pms_brand + + + id = #{row.id,jdbcType=BIGINT}, + + + name = #{row.name,jdbcType=VARCHAR}, + + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + + + sort = #{row.sort,jdbcType=INTEGER}, + + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + + + show_status = #{row.showStatus,jdbcType=INTEGER}, + + + product_count = #{row.productCount,jdbcType=INTEGER}, + + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + + + logo = #{row.logo,jdbcType=VARCHAR}, + + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, + + + + + + + + update pms_brand + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + + + + + + update pms_brand + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + + + + + + update pms_brand + + + name = #{name,jdbcType=VARCHAR}, + + + first_letter = #{firstLetter,jdbcType=VARCHAR}, + + + sort = #{sort,jdbcType=INTEGER}, + + + factory_status = #{factoryStatus,jdbcType=INTEGER}, + + + show_status = #{showStatus,jdbcType=INTEGER}, + + + product_count = #{productCount,jdbcType=INTEGER}, + + + product_comment_count = #{productCommentCount,jdbcType=INTEGER}, + + + logo = #{logo,jdbcType=VARCHAR}, + + + big_pic = #{bigPic,jdbcType=VARCHAR}, + + + brand_story = #{brandStory,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update pms_brand + set name = #{name,jdbcType=VARCHAR}, + first_letter = #{firstLetter,jdbcType=VARCHAR}, + sort = #{sort,jdbcType=INTEGER}, + factory_status = #{factoryStatus,jdbcType=INTEGER}, + show_status = #{showStatus,jdbcType=INTEGER}, + product_count = #{productCount,jdbcType=INTEGER}, + product_comment_count = #{productCommentCount,jdbcType=INTEGER}, + logo = #{logo,jdbcType=VARCHAR}, + big_pic = #{bigPic,jdbcType=VARCHAR}, + brand_story = #{brandStory,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=BIGINT} + + + update pms_brand + set name = #{name,jdbcType=VARCHAR}, + first_letter = #{firstLetter,jdbcType=VARCHAR}, + sort = #{sort,jdbcType=INTEGER}, + factory_status = #{factoryStatus,jdbcType=INTEGER}, + show_status = #{showStatus,jdbcType=INTEGER}, + product_count = #{productCount,jdbcType=INTEGER}, + product_comment_count = #{productCommentCount,jdbcType=INTEGER}, + logo = #{logo,jdbcType=VARCHAR}, + big_pic = #{bigPic,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/resources/generator.properties b/mall-tiny-alipay/src/main/resources/generator.properties new file mode 100644 index 00000000..c714398a --- /dev/null +++ b/mall-tiny-alipay/src/main/resources/generator.properties @@ -0,0 +1,4 @@ +jdbc.driverClass=com.mysql.cj.jdbc.Driver +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.userId=root +jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-alipay/src/main/resources/generatorConfig.xml b/mall-tiny-alipay/src/main/resources/generatorConfig.xml new file mode 100644 index 00000000..e6e4181d --- /dev/null +++ b/mall-tiny-alipay/src/main/resources/generatorConfig.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
\ No newline at end of file diff --git a/mall-tiny-alipay/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-alipay/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java new file mode 100644 index 00000000..6b95c21d --- /dev/null +++ b/mall-tiny-alipay/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -0,0 +1,14 @@ +package com.macro.mall.tiny; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@SpringBootTest +public class MallTinyApplicationTests { + + @Test + public void contextLoads() { + } + +} diff --git a/mall-tiny-aop/.gitignore b/mall-tiny-aop/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-aop/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-aop/pom.xml b/mall-tiny-aop/pom.xml deleted file mode 100644 index 0365fdc9..00000000 --- a/mall-tiny-aop/pom.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-aop - 0.0.1-SNAPSHOT - mall-tiny-aop - Demo project for Spring Boot - - - 1.8 - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.7 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - cn.hutool - hutool-all - 4.5.7 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java deleted file mode 100644 index 1e856ad4..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.URLUtil; -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.dto.WebLog; -import io.swagger.annotations.ApiOperation; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.Signature; -import org.aspectj.lang.annotation.*; -import org.aspectj.lang.reflect.MethodSignature; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 统一日志处理切面 - * Created by macro on 2018/4/26. - */ -@Aspect -@Component -@Order(1) -public class WebLogAspect { - private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class); - - @Pointcut("execution(public * com.macro.mall.tiny.controller.*.*(..))") - public void webLog() { - } - - @Before("webLog()") - public void doBefore(JoinPoint joinPoint) throws Throwable { - } - - @AfterReturning(value = "webLog()", returning = "ret") - public void doAfterReturning(Object ret) throws Throwable { - } - - @Around("webLog()") - public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { - long startTime = System.currentTimeMillis(); - //获取当前请求对象 - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = attributes.getRequest(); - //记录请求信息 - WebLog webLog = new WebLog(); - Object result = joinPoint.proceed(); - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - if (method.isAnnotationPresent(ApiOperation.class)) { - ApiOperation apiOperation = method.getAnnotation(ApiOperation.class); - webLog.setDescription(apiOperation.value()); - } - long endTime = System.currentTimeMillis(); - String urlStr = request.getRequestURL().toString(); - webLog.setBasePath(StrUtil.removeSuffix(urlStr, URLUtil.url(urlStr).getPath())); - webLog.setIp(request.getRemoteUser()); - webLog.setMethod(request.getMethod()); - webLog.setParameter(getParameter(method, joinPoint.getArgs())); - webLog.setResult(result); - webLog.setSpendTime((int) (endTime - startTime)); - webLog.setStartTime(startTime); - webLog.setUri(request.getRequestURI()); - webLog.setUrl(request.getRequestURL().toString()); - LOGGER.info("{}", JSONUtil.parse(webLog)); - return result; - } - - /** - * 根据方法和传入的参数获取请求参数 - */ - private Object getParameter(Method method, Object[] args) { - List argList = new ArrayList<>(); - Parameter[] parameters = method.getParameters(); - for (int i = 0; i < parameters.length; i++) { - //将RequestBody注解修饰的参数作为请求参数 - RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); - if (requestBody != null) { - argList.add(args[i]); - } - //将RequestParam注解修饰的参数作为请求参数 - RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); - if (requestParam != null) { - Map map = new HashMap<>(); - String key = parameters[i].getName(); - if (!StringUtils.isEmpty(requestParam.value())) { - key = requestParam.value(); - } - map.put(key, args[i]); - argList.add(map); - } - } - if (argList.size() == 0) { - return null; - } else if (argList.size() == 1) { - return argList.get(0); - } else { - return argList; - } - } -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/dto/WebLog.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/dto/WebLog.java deleted file mode 100644 index c2fb9f1c..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/dto/WebLog.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.macro.mall.tiny.dto; - -/** - * 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-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 37d62163..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - long countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-aop/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-aop/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-aop/src/main/resources/application.yml b/mall-tiny-aop/src/main/resources/application.yml deleted file mode 100644 index 5edcbdbc..00000000 --- a/mall-tiny-aop/src/main/resources/application.yml +++ /dev/null @@ -1,13 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-aop/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-aop/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 51b5436b..00000000 --- a/mall-tiny-aop/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-aop/src/main/resources/generator.properties b/mall-tiny-aop/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-aop/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-aop/src/main/resources/generatorConfig.xml b/mall-tiny-aop/src/main/resources/generatorConfig.xml deleted file mode 100644 index fbffa745..00000000 --- a/mall-tiny-aop/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-aop/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-aop/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-aop/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-apm/.gitignore b/mall-tiny-apm/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-apm/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-apm/pom.xml b/mall-tiny-apm/pom.xml deleted file mode 100644 index f5d28d85..00000000 --- a/mall-tiny-apm/pom.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-apm - 1.0-SNAPSHOT - mall-tiny-apm - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - - cn.hutool - hutool-all - 4.5.7 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - co.elastic.apm - apm-agent-attach - 1.17.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 228bb39e..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.macro.mall.tiny; - -import co.elastic.apm.attach.ElasticApmAttacher; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - ElasticApmAttacher.attach(); - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index ba74c8ea..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.macro.mall.tiny.controller; - -import cn.hutool.core.thread.ThreadUtil; -import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.concurrent.TimeUnit; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } - - @ApiOperation("远程调用获取所有品牌信息") - @RequestMapping(value = "/remoteListAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> remoteListAll() { - //模拟耗时操作 - ThreadUtil.sleep(1, TimeUnit.SECONDS); - //远程调用获取数据 - String response = HttpUtil.get("http://localhost:8088/brand/listAll"); - JSONObject jsonObject = new JSONObject(response); - JSONArray data = jsonObject.getJSONArray("data"); - List brandList = data.toList(PmsBrand.class); - return CommonResult.success(brandList); - } -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-apm/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-apm/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-apm/src/main/resources/application.yml b/mall-tiny-apm/src/main/resources/application.yml deleted file mode 100644 index ffc3e032..00000000 --- a/mall-tiny-apm/src/main/resources/application.yml +++ /dev/null @@ -1,14 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - diff --git a/mall-tiny-apm/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-apm/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-apm/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-apm/src/main/resources/elasticapm.properties b/mall-tiny-apm/src/main/resources/elasticapm.properties deleted file mode 100644 index 6ab26108..00000000 --- a/mall-tiny-apm/src/main/resources/elasticapm.properties +++ /dev/null @@ -1,6 +0,0 @@ -# ÷ -service_name=mall-tiny-apm -# Ӧڻ -application_packages=com.macro.mall.tiny -# APM Serverķʵַ -server_urls=http://localhost:8200 \ No newline at end of file diff --git a/mall-tiny-apm/src/main/resources/generator.properties b/mall-tiny-apm/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-apm/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-apm/src/main/resources/generatorConfig.xml b/mall-tiny-apm/src/main/resources/generatorConfig.xml deleted file mode 100644 index cf846972..00000000 --- a/mall-tiny-apm/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-apm/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-apm/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-apm/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-apm/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-apm/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-apm/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-arthas/.gitignore b/mall-tiny-arthas/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-arthas/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-arthas/pom.xml b/mall-tiny-arthas/pom.xml deleted file mode 100644 index 034fd57c..00000000 --- a/mall-tiny-arthas/pom.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-arthas - 1.0-SNAPSHOT - mall-tiny-arthas - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mall-tiny-arthas/src/main/docker/Dockerfile b/mall-tiny-arthas/src/main/docker/Dockerfile deleted file mode 100644 index 0b638ad2..00000000 --- a/mall-tiny-arthas/src/main/docker/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前目录下的jar包复制到docker容器的/目录下 -ADD mall-tiny-arthas-1.0-SNAPSHOT.jar /mall-tiny-arthas-1.0-SNAPSHOT.jar -# 声明服务运行在8088端口 -EXPOSE 8088 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/mall-tiny-arthas-1.0-SNAPSHOT.jar"] -# 指定维护者的名字 -MAINTAINER macro \ No newline at end of file diff --git a/mall-tiny-arthas/src/main/docker/run.sh b/mall-tiny-arthas/src/main/docker/run.sh deleted file mode 100644 index cf57241a..00000000 --- a/mall-tiny-arthas/src/main/docker/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash -# 定义应用组名 -group_name='mall-tiny' -# 定义应用名称 -app_name='mall-tiny-arthas' -# 定义应用版本 -app_version='1.0-SNAPSHOT' -# 定义应用环境 -profile_active='qa' -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 8088:8088 --name ${app_name} \ ---link mysql:db \ --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-tiny-arthas/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 86846275..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - LOGGER.info("listBrand success brand size:{}",brandList.size()); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - if(id<=0){ -// throw new IllegalArgumentException("id not excepted id:"+id); - return CommonResult.success(null); - } - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-arthas/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-arthas/src/main/resources/application-dev.yml b/mall-tiny-arthas/src/main/resources/application-dev.yml deleted file mode 100644 index 78e3911d..00000000 --- a/mall-tiny-arthas/src/main/resources/application-dev.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-arthas/src/main/resources/application-prod.yml b/mall-tiny-arthas/src/main/resources/application-prod.yml deleted file mode 100644 index ab84996a..00000000 --- a/mall-tiny-arthas/src/main/resources/application-prod.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-arthas/src/main/resources/application-qa.yml b/mall-tiny-arthas/src/main/resources/application-qa.yml deleted file mode 100644 index ab84996a..00000000 --- a/mall-tiny-arthas/src/main/resources/application-qa.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-arthas/src/main/resources/application.yml b/mall-tiny-arthas/src/main/resources/application.yml deleted file mode 100644 index 14f3e74c..00000000 --- a/mall-tiny-arthas/src/main/resources/application.yml +++ /dev/null @@ -1,12 +0,0 @@ -server: - port: 8088 - -spring: - profiles: - active: dev - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - diff --git a/mall-tiny-arthas/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-arthas/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-arthas/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-arthas/src/main/resources/generator.properties b/mall-tiny-arthas/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-arthas/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-arthas/src/main/resources/generatorConfig.xml b/mall-tiny-arthas/src/main/resources/generatorConfig.xml deleted file mode 100644 index cd5e847d..00000000 --- a/mall-tiny-arthas/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-arthas/src/main/resources/mall-tiny-jenkins.sh b/mall-tiny-arthas/src/main/resources/mall-tiny-jenkins.sh deleted file mode 100644 index 177cdeda..00000000 --- a/mall-tiny-arthas/src/main/resources/mall-tiny-jenkins.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash -app_name='mall-tiny-arthas' -docker stop ${app_name} -echo '----stop container----' -docker rm ${app_name} -echo '----rm container----' -docker run -p 8088:8088 --name ${app_name} \ ---link mysql:db \ --v /etc/localtime:/etc/localtime \ --v /mydata/app/${app_name}/logs:/var/logs \ --d mall-tiny/${app_name}:1.0-SNAPSHOT -echo '----start container----' \ No newline at end of file diff --git a/mall-tiny-arthas/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-arthas/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-arthas/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-arthas/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-arthas/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-arthas/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-arthas2/.gitignore b/mall-tiny-arthas2/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-arthas2/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-arthas2/pom.xml b/mall-tiny-arthas2/pom.xml deleted file mode 100644 index 9dd91b3a..00000000 --- a/mall-tiny-arthas2/pom.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-arthas2 - 1.0-SNAPSHOT - mall-tiny-arthas2 - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.boot - spring-boot-starter-actuator - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - com.taobao.arthas - arthas-spring-boot-starter - 3.6.1 - - - - - mall-tiny-arthas-${version} - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mall-tiny-arthas2/src/main/arthas/Dockerfile b/mall-tiny-arthas2/src/main/arthas/Dockerfile deleted file mode 100644 index 95ff08e5..00000000 --- a/mall-tiny-arthas2/src/main/arthas/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前目录下的jar包复制到docker容器的/目录下 -ADD arthas-tunnel-server.jar /arthas-tunnel-server.jar -# 声明服务运行的端口 -EXPOSE 8080 7777 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/arthas-tunnel-server.jar"] -# 指定维护者的名字 -MAINTAINER macro \ No newline at end of file diff --git a/mall-tiny-arthas2/src/main/arthas/run.sh b/mall-tiny-arthas2/src/main/arthas/run.sh deleted file mode 100644 index 82911ae9..00000000 --- a/mall-tiny-arthas2/src/main/arthas/run.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -# 定义应用组名 -group_name='mall-tiny' -# 定义应用名称 -app_name='arthas-tunnel-server' -# 定义应用版本 -app_version='1.0-SNAPSHOT' -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 -p 7777:7777 --name ${app_name} \ --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-tiny-arthas2/src/main/docker/Dockerfile b/mall-tiny-arthas2/src/main/docker/Dockerfile deleted file mode 100644 index 0b638ad2..00000000 --- a/mall-tiny-arthas2/src/main/docker/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前目录下的jar包复制到docker容器的/目录下 -ADD mall-tiny-arthas-1.0-SNAPSHOT.jar /mall-tiny-arthas-1.0-SNAPSHOT.jar -# 声明服务运行在8088端口 -EXPOSE 8088 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/mall-tiny-arthas-1.0-SNAPSHOT.jar"] -# 指定维护者的名字 -MAINTAINER macro \ No newline at end of file diff --git a/mall-tiny-arthas2/src/main/docker/run.sh b/mall-tiny-arthas2/src/main/docker/run.sh deleted file mode 100644 index 351319be..00000000 --- a/mall-tiny-arthas2/src/main/docker/run.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -# 定义应用组名 -group_name='mall-tiny' -# 定义应用名称 -app_name='mall-tiny-arthas' -# 定义应用版本 -app_version='1.0-SNAPSHOT' -# 定义应用环境 -profile_active='qa' -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 8088:8088 --name ${app_name} \ ---link mysql:db \ ---link arthas-tunnel-server:arthas-tunnel-server \ --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-tiny-arthas2/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 86846275..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - LOGGER.info("listBrand success brand size:{}",brandList.size()); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - if(id<=0){ -// throw new IllegalArgumentException("id not excepted id:"+id); - return CommonResult.success(null); - } - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-arthas2/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-arthas2/src/main/resources/application-dev.yml b/mall-tiny-arthas2/src/main/resources/application-dev.yml deleted file mode 100644 index 78e3911d..00000000 --- a/mall-tiny-arthas2/src/main/resources/application-dev.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-arthas2/src/main/resources/application-prod.yml b/mall-tiny-arthas2/src/main/resources/application-prod.yml deleted file mode 100644 index ab84996a..00000000 --- a/mall-tiny-arthas2/src/main/resources/application-prod.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-arthas2/src/main/resources/application-qa.yml b/mall-tiny-arthas2/src/main/resources/application-qa.yml deleted file mode 100644 index ab84996a..00000000 --- a/mall-tiny-arthas2/src/main/resources/application-qa.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-arthas2/src/main/resources/application.yml b/mall-tiny-arthas2/src/main/resources/application.yml deleted file mode 100644 index 5475d6a7..00000000 --- a/mall-tiny-arthas2/src/main/resources/application.yml +++ /dev/null @@ -1,21 +0,0 @@ -server: - port: 8088 - -spring: - profiles: - active: dev - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -management: - endpoints: - web: - exposure: - # 暴露端点`/actuator/arthas` - include: 'arthas' -arthas: - agent-id: mall-tiny-arthas - tunnel-server: ws://arthas-tunnel-server:7777/ws diff --git a/mall-tiny-arthas2/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-arthas2/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-arthas2/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-arthas2/src/main/resources/generator.properties b/mall-tiny-arthas2/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-arthas2/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-arthas2/src/main/resources/generatorConfig.xml b/mall-tiny-arthas2/src/main/resources/generatorConfig.xml deleted file mode 100644 index 2f8220db..00000000 --- a/mall-tiny-arthas2/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-arthas2/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-arthas2/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-arthas2/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-arthas2/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-arthas2/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-arthas2/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-boot/pom.xml b/mall-tiny-boot/pom.xml index 3ed41d07..b7156923 100644 --- a/mall-tiny-boot/pom.xml +++ b/mall-tiny-boot/pom.xml @@ -2,37 +2,23 @@ 4.0.0 - com.macro.mall + mall-tiny-boot 1.0-SNAPSHOT mall-tiny-boot Demo project for Spring Boot - - UTF-8 - UTF-8 - 1.8 - true - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + org.springframework.boot spring-boot-starter-web - - - - spring-boot-starter-tomcat - org.springframework.boot - - org.springframework.boot @@ -51,25 +37,25 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} @@ -86,24 +72,19 @@ cn.hutool hutool-all - 4.5.7 + ${hutool.version} io.jsonwebtoken jjwt - 0.9.0 + ${jjwt.version} io.springfox springfox-boot-starter - 3.0.0 - - - - org.springframework.boot - spring-boot-starter-undertow + ${springfox-swagger.version} org.springframework.boot diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java index 5ec26f6c..d5ef820b 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java @@ -14,7 +14,8 @@ import java.util.Map; /** - * JwtToken生成的工具类 + * @auther macrozheng + * @description JwtToken生成的工具类 * JWT token的格式:header.payload.signature * header的格式(算法、token的类型): * {"alg": "HS512","typ": "JWT"} @@ -22,7 +23,8 @@ * {"sub":"wang","created":1489079981393,"exp":1489684781} * signature的生成算法: * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class JwtTokenUtil { diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java index abdb7b71..65cc9fcb 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java @@ -19,8 +19,10 @@ import java.io.IOException; /** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description JWT登录授权过滤器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java index 757df36c..1445038f 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. + * @auther macrozheng + * @description 当未登录或者token失效访问接口时,自定义的返回结果 + * @date 2018/5/14 + * @github https://github.com/macrozheng */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java index bc201cce..769dbfc3 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 当访问接口没有权限时,自定义的返回结果 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java index 2094034b..deb9c03a 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java @@ -9,8 +9,10 @@ import java.util.List; /** - * 用于配置白名单资源路径 - * Created by macro on 2018/11/5. + * @auther macrozheng + * @description 用于配置白名单资源路径 + * @date 2018/11/5 + * @github https://github.com/macrozheng */ @Getter @Setter diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ec54365e 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.mbg.mapper") diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java index 6454f1ae..a8bda005 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java @@ -1,6 +1,5 @@ package com.macro.mall.tiny.config; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ArrayUtil; import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; @@ -11,30 +10,30 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import java.util.List; /** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description SpringSecurity的配置 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { +public class SecurityConfig{ @Autowired private UmsAdminService adminService; @Autowired @@ -44,8 +43,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private IgnoreUrlsConfig ignoreUrlsConfig; - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { List urls = ignoreUrlsConfig.getUrls(); String[] urlArray = ArrayUtil.toArray(urls, String.class); httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf @@ -72,12 +71,7 @@ protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.exceptionHandling() .accessDeniedHandler(restfulAccessDeniedHandler) .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); + return httpSecurity.build(); } @Bean @@ -102,10 +96,4 @@ public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { return new JwtAuthenticationTokenFilter(); } - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - } diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 0115ca4f..930cac51 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,7 +1,11 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; @@ -9,12 +13,19 @@ import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置(带认证) + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration public class Swagger2Config { @@ -70,4 +81,37 @@ private List defaultAuth() { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 66508034..beed2286 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +20,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index 27e9d37d..5dba72f9 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.UmsAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -16,11 +17,14 @@ import java.util.Map; /** - * 后台用户管理 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { @Autowired diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java index 3152ef66..746b21e6 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java @@ -12,7 +12,10 @@ import java.util.stream.Collectors; /** - * Created by macro on 2020/10/15. + * @auther macrozheng + * @description SpringSecurity需要的用户详情 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ @Data @EqualsAndHashCode(callSuper = false) diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 6528582e..42c737a2 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.domain.AdminUserDetails; /** - * 后台用于管理Service - * Created by macro on 2020/10/15. + * @auther macrozheng + * @description 后台用于管理Service + * @date 2020/10/15 + * @github https://github.com/macrozheng */ public interface UmsAdminService { /** diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 45347be4..22dd95f2 100644 --- a/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny-boot/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -20,7 +20,10 @@ import java.util.stream.Collectors; /** - * Created by macro on 2020/10/15. + * @auther macrozheng + * @description UmsAdminService实现类 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ @Slf4j @Service diff --git a/mall-tiny-boot/src/main/resources/application.yml b/mall-tiny-boot/src/main/resources/application.yml index dcf6115c..4d78ed41 100644 --- a/mall-tiny-boot/src/main/resources/application.yml +++ b/mall-tiny-boot/src/main/resources/application.yml @@ -3,9 +3,14 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + main: + allow-circular-references: true + mvc: + pathmatch: + matching-strategy: ant_path_matcher mybatis: mapper-locations: diff --git a/mall-tiny-boot/src/main/resources/generator.properties b/mall-tiny-boot/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-boot/src/main/resources/generator.properties +++ b/mall-tiny-boot/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-boot/src/main/resources/generatorConfig.xml b/mall-tiny-boot/src/main/resources/generatorConfig.xml index 911eb0b5..df0a58c1 100644 --- a/mall-tiny-boot/src/main/resources/generatorConfig.xml +++ b/mall-tiny-boot/src/main/resources/generatorConfig.xml @@ -6,36 +6,42 @@ + + + - + - - - + + + + + + - + - + - + - + - + - +
diff --git a/mall-tiny-boot/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-boot/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index 6675173d..d91854bd 100644 --- a/mall-tiny-boot/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-boot/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -4,25 +4,19 @@ import com.macro.mall.tiny.service.PmsBrandService; import lombok.extern.log4j.Log4j; import lombok.extern.slf4j.Slf4j; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; -@RunWith(SpringRunner.class) @SpringBootTest @Slf4j public class MallTinyApplicationTests { @Autowired private PmsBrandService pmsBrandService; - @Test - public void contextLoads() { - } - @Test public void testMethod() { List brandList = pmsBrandService.listAllBrand(); diff --git a/mall-tiny-delay/.gitignore b/mall-tiny-delay/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-delay/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-delay/pom.xml b/mall-tiny-delay/pom.xml deleted file mode 100644 index 5882593b..00000000 --- a/mall-tiny-delay/pom.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-delay - 0.0.1-SNAPSHOT - mall-tiny-delay - Demo project for Spring Boot - - - 1.8 - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 4.5.7 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - org.springframework.boot - spring-boot-starter-amqp - - - - org.projectlombok - lombok - true - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index cd91d663..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; -import org.springframework.data.domain.Page; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - /** - * 将SpringData分页后的list转为分页信息 - */ - public static CommonPage restPage(Page pageInfo) { - CommonPage result = new CommonPage(); - result.setTotalPage(pageInfo.getTotalPages()); - result.setPageNum(pageInfo.getNumber()); - result.setPageSize(pageInfo.getSize()); - result.setTotal(pageInfo.getTotalElements()); - result.setList(pageInfo.getContent()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java deleted file mode 100644 index 0559f9f3..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.service.OmsPortalOrderService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * 取消订单消息的处理者 - * Created by macro on 2018/9/14. - */ -@Component -@RabbitListener(queues = "mall.order.cancel.plugin") -public class CancelOrderReceiver { - private static Logger LOGGER =LoggerFactory.getLogger(CancelOrderReceiver.class); - @Autowired - private OmsPortalOrderService portalOrderService; - @RabbitHandler - public void handle(Long orderId){ - LOGGER.info("receive delay message orderId:{}",orderId); - portalOrderService.cancelOrder(orderId); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java deleted file mode 100644 index 9fb3ee8d..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.dto.QueueEnum; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.AmqpException; -import org.springframework.amqp.core.AmqpTemplate; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.core.MessagePostProcessor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * 取消订单消息的发出者 - * Created by macro on 2018/9/14. - */ -@Component -public class CancelOrderSender { - private static Logger LOGGER =LoggerFactory.getLogger(CancelOrderSender.class); - @Autowired - private AmqpTemplate amqpTemplate; - - public void sendMessage(Long orderId,final long delayTimes){ - //给延迟队列发送消息 - amqpTemplate.convertAndSend(QueueEnum.QUEUE_ORDER_PLUGIN_CANCEL.getExchange(), QueueEnum.QUEUE_ORDER_PLUGIN_CANCEL.getRouteKey(), orderId, new MessagePostProcessor() { - @Override - public Message postProcessMessage(Message message) throws AmqpException { - //给消息设置延迟毫秒值 - message.getMessageProperties().setHeader("x-delay",delayTimes); - return message; - } - }); - LOGGER.info("send delay message orderId:{}",orderId); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index f4584332..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) -public class MyBatisConfig { -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java deleted file mode 100644 index c912b8c9..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.dto.QueueEnum; -import org.springframework.amqp.core.*; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import java.util.HashMap; -import java.util.Map; - -/** - * 消息队列配置 - * Created by macro on 2018/9/14. - */ -@Configuration -public class RabbitMqConfig { - - /** - * 订单延迟插件消息队列所绑定的交换机 - */ - @Bean - CustomExchange orderPluginDirect() { - //创建一个自定义交换机,可以发送延迟消息 - Map args = new HashMap<>(); - args.put("x-delayed-type", "direct"); - return new CustomExchange(QueueEnum.QUEUE_ORDER_PLUGIN_CANCEL.getExchange(), "x-delayed-message",true, false,args); - } - - /** - * 订单延迟插件队列 - */ - @Bean - public Queue orderPluginQueue() { - return new Queue(QueueEnum.QUEUE_ORDER_PLUGIN_CANCEL.getName()); - } - - /** - * 将订单延迟插件队列绑定到交换机 - */ - @Bean - public Binding orderPluginBinding(CustomExchange orderPluginDirect,Queue orderPluginQueue) { - return BindingBuilder - .bind(orderPluginQueue) - .to(orderPluginDirect) - .with(QueueEnum.QUEUE_ORDER_PLUGIN_CANCEL.getRouteKey()) - .noargs(); - } - -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index 5771cb2b..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.dto.AdminUserDetails; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - -import java.util.List; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled=true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login", "/admin/register")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers("/esProduct/**","/member/readHistory/**","/order/**")// 测试时放开 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() -// .antMatchers("/**")//测试时全部运行访问 -// .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - UmsAdmin admin = adminService.getAdminByUsername(username); - if (admin != null) { - List permissionList = adminService.getPermissionList(admin.getId()); - return new AdminUserDetails(admin,permissionList); - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 8946105a..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .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("/brand/.*")); - 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-tiny-delay/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java deleted file mode 100644 index b7eccf9c..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.dto.OrderParam; -import com.macro.mall.tiny.service.OmsPortalOrderService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -/** - * 订单管理Controller - * Created by macro on 2018/8/30. - */ -@Controller -@Api(tags = "OmsPortalOrderController", description = "订单管理") -@RequestMapping("/order") -public class OmsPortalOrderController { - @Autowired - private OmsPortalOrderService portalOrderService; - - @ApiOperation("根据购物车信息生成订单") - @RequestMapping(value = "/generateOrder", method = RequestMethod.POST) - @ResponseBody - public Object generateOrder(@RequestBody OrderParam orderParam) { - return portalOrderService.generateOrder(orderParam); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 0dee32a4..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:create')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:update')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:delete')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index d95f9683..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @ApiOperation(value = "用户注册") - @RequestMapping(value = "/register", method = RequestMethod.POST) - @ResponseBody - public CommonResult register(@RequestBody UmsAdmin umsAdminParam, BindingResult result) { - UmsAdmin umsAdmin = adminService.register(umsAdminParam); - if (umsAdmin == null) { - CommonResult.failed(); - } - return CommonResult.success(umsAdmin); - } - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) { - String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword()); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } - - @ApiOperation("获取用户所有权限(包括+-权限)") - @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getPermissionList(@PathVariable Long adminId) { - List permissionList = adminService.getPermissionList(adminId); - return CommonResult.success(permissionList); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java deleted file mode 100644 index c936c689..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsMemberService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -/** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. - */ -@Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") -@RequestMapping("/sso") -public class UmsMemberController { - @Autowired - private UmsMemberService memberService; - - @ApiOperation("获取验证码") - @RequestMapping(value = "/getAuthCode", method = RequestMethod.GET) - @ResponseBody - public CommonResult getAuthCode(@RequestParam String telephone) { - return memberService.generateAuthCode(telephone); - } - - @ApiOperation("判断验证码是否正确") - @RequestMapping(value = "/verifyAuthCode", method = RequestMethod.POST) - @ResponseBody - public CommonResult updatePassword(@RequestParam String telephone, - @RequestParam String authCode) { - return memberService.verifyAuthCode(telephone,authCode); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java deleted file mode 100644 index 50f00f7c..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.dao; - - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 后台用户与角色管理自定义Dao - * Created by macro on 2018/10/8. - */ -public interface UmsAdminRoleRelationDao { - - /** - * 获取用户所有权限(包括+-权限) - */ - List getPermissionList(@Param("adminId") Long adminId); -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java deleted file mode 100644 index bd712424..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * SpringSecurity需要的用户详情 - * Created by macro on 2018/4/26. - */ -public class AdminUserDetails implements UserDetails { - private UmsAdmin umsAdmin; - private List permissionList; - public AdminUserDetails(UmsAdmin umsAdmin, List permissionList) { - this.umsAdmin = umsAdmin; - this.permissionList = permissionList; - } - - @Override - public Collection getAuthorities() { - //返回当前用户的权限 - return permissionList.stream() - .filter(permission -> permission.getValue()!=null) - .map(permission ->new SimpleGrantedAuthority(permission.getValue())) - .collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return umsAdmin.getPassword(); - } - - @Override - public String getUsername() { - return umsAdmin.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return umsAdmin.getStatus().equals(1); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/OrderParam.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/OrderParam.java deleted file mode 100644 index 88fa55c9..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/OrderParam.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.macro.mall.tiny.dto; - -/** - * 生成订单时传入的参数 - * Created by macro on 2018/8/30. - */ -public class OrderParam { - //收货地址id - private Long memberReceiveAddressId; - //优惠券id - private Long couponId; - //使用的积分数 - private Integer useIntegration; - //支付方式 - private Integer payType; - - public Long getMemberReceiveAddressId() { - return memberReceiveAddressId; - } - - public void setMemberReceiveAddressId(Long memberReceiveAddressId) { - this.memberReceiveAddressId = memberReceiveAddressId; - } - - public Long getCouponId() { - return couponId; - } - - public void setCouponId(Long couponId) { - this.couponId = couponId; - } - - public Integer getPayType() { - return payType; - } - - public void setPayType(Integer payType) { - this.payType = payType; - } - - public Integer getUseIntegration() { - return useIntegration; - } - - public void setUseIntegration(Integer useIntegration) { - this.useIntegration = useIntegration; - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java deleted file mode 100644 index b60eba95..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.macro.mall.tiny.dto; - -import lombok.Getter; - -/** - * 消息队列枚举配置 - * Created by macro on 2018/9/14. - */ -@Getter -public enum QueueEnum { - /** - * 插件实现延迟队列 - */ - QUEUE_ORDER_PLUGIN_CANCEL("mall.order.direct.plugin", "mall.order.cancel.plugin", "mall.order.cancel.plugin"); - - /** - * 交换名称 - */ - private String exchange; - /** - * 队列名称 - */ - private String name; - /** - * 路由键 - */ - private String routeKey; - - QueueEnum(String exchange, String name, String routeKey) { - this.exchange = exchange; - this.name = name; - this.routeKey = routeKey; - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java deleted file mode 100644 index 94e9396a..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.validator.constraints.NotEmpty; - -/** - * 用户登录参数 - * Created by macro on 2018/4/26. - */ -public class UmsAdminLoginParam { - @ApiModelProperty(value = "用户名", required = true) - @NotEmpty(message = "用户名不能为空") - private String username; - @ApiModelProperty(value = "密码", required = true) - @NotEmpty(message = "密码不能为空") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java deleted file mode 100644 index dc28b2a2..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.OrderParam; -import org.springframework.transaction.annotation.Transactional; - -/** - * 前台订单管理Service - * Created by macro on 2018/8/30. - */ -public interface OmsPortalOrderService { - - /** - * 根据提交信息生成订单 - */ - @Transactional - CommonResult generateOrder(OrderParam orderParam); - - /** - * 取消单个超时订单 - */ - @Transactional - void cancelOrder(Long orderId); -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/RedisService.java deleted file mode 100644 index 191ab73b..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.macro.mall.tiny.service; - -/** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. - */ -public interface RedisService { - /** - * 存储数据 - */ - void set(String key, String value); - - /** - * 获取数据 - */ - String get(String key); - - /** - * 设置超期时间 - */ - boolean expire(String key, long expire); - - /** - * 删除数据 - */ - void remove(String key); - - /** - * 自增操作 - * @param delta 自增步长 - */ - Long increment(String key, long delta); - -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 08a9d539..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; - -import java.util.List; - -/** - * 后台管理员Service - * Created by macro on 2018/4/26. - */ -public interface UmsAdminService { - /** - * 根据用户名获取后台管理员 - */ - UmsAdmin getAdminByUsername(String username); - - /** - * 注册功能 - */ - UmsAdmin register(UmsAdmin umsAdminParam); - - /** - * 登录功能 - * @param username 用户名 - * @param password 密码 - * @return 生成的JWT的token - */ - String login(String username, String password); - - /** - * 获取用户所有权限(包括角色权限和+-权限) - */ - List getPermissionList(Long adminId); -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java deleted file mode 100644 index f9fd8ac9..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.common.api.CommonResult; - -/** - * 会员管理Service - * Created by macro on 2018/8/3. - */ -public interface UmsMemberService { - - /** - * 生成验证码 - */ - CommonResult generateAuthCode(String telephone); - - /** - * 判断验证码和手机号码是否匹配 - */ - CommonResult verifyAuthCode(String telephone, String authCode); - -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java deleted file mode 100644 index e2ccf246..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.component.CancelOrderSender; -import com.macro.mall.tiny.dto.OrderParam; -import com.macro.mall.tiny.service.OmsPortalOrderService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * 前台订单管理Service - * Created by macro on 2018/8/30. - */ -@Service -public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { - private static Logger LOGGER = LoggerFactory.getLogger(OmsPortalOrderServiceImpl.class); - @Autowired - private CancelOrderSender cancelOrderSender; - - @Override - public CommonResult generateOrder(OrderParam orderParam) { - //todo 执行一系类下单操作,具体参考mall项目 - LOGGER.info("process generateOrder"); - //下单完成后开启一个延迟消息,用于当用户没有付款时取消订单(orderId应该在下单后生成) - sendDelayMessageCancelOrder(11L); - return CommonResult.success(null, "下单成功"); - } - - @Override - public void cancelOrder(Long orderId) { - //todo 执行一系类取消订单操作,具体参考mall项目 - LOGGER.info("process cancelOrder orderId:{}",orderId); - } - - private void sendDelayMessageCancelOrder(Long orderId) { - //获取订单超时时间,假设为60分钟(测试用的30秒) - long delayTimes = 30 * 1000; - //发送延迟消息 - cancelOrderSender.sendMessage(orderId, delayTimes); - } - -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java deleted file mode 100644 index cb9d7e0c..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.service.RedisService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.stereotype.Service; - -import java.util.concurrent.TimeUnit; - -/** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. - */ -@Service -public class RedisServiceImpl implements RedisService { - @Autowired - private StringRedisTemplate stringRedisTemplate; - - @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); - } - - @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); - } - - @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); - } - - @Override - public void remove(String key) { - stringRedisTemplate.delete(key); - } - - @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 4f0a052d..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.dao.UmsAdminRoleRelationDao; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.mapper.UmsAdminMapper; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.service.UmsAdminService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import java.util.Date; -import java.util.List; - -/** - * UmsAdminService实现类 - * Created by macro on 2018/4/26. - */ -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - @Value("${jwt.tokenHead}") - private String tokenHead; - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminRoleRelationDao adminRoleRelationDao; - - @Override - public UmsAdmin getAdminByUsername(String username) { - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(username); - List adminList = adminMapper.selectByExample(example); - if (adminList != null && adminList.size() > 0) { - return adminList.get(0); - } - return null; - } - - @Override - public UmsAdmin register(UmsAdmin umsAdminParam) { - UmsAdmin umsAdmin = new UmsAdmin(); - BeanUtils.copyProperties(umsAdminParam, umsAdmin); - umsAdmin.setCreateTime(new Date()); - umsAdmin.setStatus(1); - //查询是否有相同用户名的用户 - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername()); - List umsAdminList = adminMapper.selectByExample(example); - if (umsAdminList.size() > 0) { - return null; - } - //将密码进行加密操作 - String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); - umsAdmin.setPassword(encodePassword); - adminMapper.insert(umsAdmin); - return umsAdmin; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - LOGGER.warn("登录异常:{}", e.getMessage()); - } - return token; - } - - - @Override - public List getPermissionList(Long adminId) { - return adminRoleRelationDao.getPermissionList(adminId); - } -} diff --git a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java deleted file mode 100644 index 06378693..00000000 --- a/mall-tiny-delay/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.RedisService; -import com.macro.mall.tiny.service.UmsMemberService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import java.util.Random; - -/** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. - */ -@Service -public class UmsMemberServiceImpl implements UmsMemberService { - @Autowired - private RedisService redisService; - @Value("${redis.key.prefix.authCode}") - private String REDIS_KEY_PREFIX_AUTH_CODE; - @Value("${redis.key.expire.authCode}") - private Long AUTH_CODE_EXPIRE_SECONDS; - - @Override - public CommonResult generateAuthCode(String telephone) { - StringBuilder sb = new StringBuilder(); - Random random = new Random(); - for (int i = 0; i < 6; i++) { - sb.append(random.nextInt(10)); - } - //验证码绑定手机号并存储到redis - redisService.set(REDIS_KEY_PREFIX_AUTH_CODE + telephone, sb.toString()); - redisService.expire(REDIS_KEY_PREFIX_AUTH_CODE + telephone, AUTH_CODE_EXPIRE_SECONDS); - return CommonResult.success(sb.toString(), "获取验证码成功"); - } - - - //对输入的验证码进行校验 - @Override - public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { - return CommonResult.failed("请输入验证码"); - } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); - boolean result = authCode.equals(realAuthCode); - if (result) { - return CommonResult.success(null, "验证码校验成功"); - } else { - return CommonResult.failed("验证码不正确"); - } - } - -} diff --git a/mall-tiny-delay/src/main/resources/application.yml b/mall-tiny-delay/src/main/resources/application.yml deleted file mode 100644 index 7a0d726d..00000000 --- a/mall-tiny-delay/src/main/resources/application.yml +++ /dev/null @@ -1,47 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - redis: - host: localhost # Redis服务器地址 - database: 0 # Redis数据库索引(默认为0) - port: 6379 # Redis服务器连接端口 - password: # Redis服务器连接密码(默认为空) - jedis: - pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) - rabbitmq: - host: localhost # rabbitmq的连接地址 - port: 5672 # rabbitmq的连接端口号 - virtual-host: /mall # rabbitmq的虚拟host - username: mall # rabbitmq的用户名 - password: mall # rabbitmq的密码 - publisher-confirms: true #如果对异步消息需要回调必须设置为true - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义redis key -redis: - key: - prefix: - authCode: "portal:authCode:" - expire: - authCode: 120 # 验证码超期时间 - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 diff --git a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-delay/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/generator.properties b/mall-tiny-delay/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-delay/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/generatorConfig.xml b/mall-tiny-delay/src/main/resources/generatorConfig.xml deleted file mode 100644 index 6b5c7f67..00000000 --- a/mall-tiny-delay/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - -
- - -
- - -
-
-
\ No newline at end of file diff --git a/mall-tiny-delay/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny-delay/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny-delay/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny-delay/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-delay/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-delay/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-deploy/.gitignore b/mall-tiny-deploy/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-deploy/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-deploy/deploy/Dockerfile b/mall-tiny-deploy/deploy/Dockerfile deleted file mode 100644 index 92b0eeb5..00000000 --- a/mall-tiny-deploy/deploy/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前目录下的jar包复制到docker容器的/目录下 -ADD mall-tiny-deploy-1.0-SNAPSHOT.jar /mall-tiny-deploy-1.0-SNAPSHOT.jar -# 声明服务运行在8088端口 -EXPOSE 8088 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/mall-tiny-deploy-1.0-SNAPSHOT.jar"] -# 指定维护者的名字 -MAINTAINER macrozheng \ No newline at end of file diff --git a/mall-tiny-deploy/deploy/run.sh b/mall-tiny-deploy/deploy/run.sh deleted file mode 100644 index 8d96f896..00000000 --- a/mall-tiny-deploy/deploy/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash -# 定义应用组名 -group_name='mall-tiny' -# 定义应用名称 -app_name='mall-tiny-deploy' -# 定义应用版本 -app_version='1.0-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 8088:8088 --name ${app_name} \ ---link mysql:db \ --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-tiny-deploy/pom.xml b/mall-tiny-deploy/pom.xml deleted file mode 100644 index 6d429b9a..00000000 --- a/mall-tiny-deploy/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-deploy - 1.0-SNAPSHOT - mall-tiny-deploy - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.6.4 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.1 - - - - com.alibaba - druid-spring-boot-starter - 1.2.8 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.7 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 5.7.22 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index cb4e264e..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Lazy - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/swagger-ui/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - AdminUserDetails admin = adminService.getAdminByUsername(username); - if (admin != null) { - return admin; - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 595bbc97..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.ReflectionUtils; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -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.spring.web.plugins.WebFluxRequestHandlerProvider; -import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - 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; - } - - @Bean - public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { - return new BeanPostProcessor() { - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { - customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); - } - return bean; - } - - private void customizeSpringfoxHandlerMappings(List mappings) { - List copy = mappings.stream() - .filter(mapping -> mapping.getPatternParser() == null) - .collect(Collectors.toList()); - mappings.clear(); - mappings.addAll(copy); - } - - @SuppressWarnings("unchecked") - private List getHandlerMappings(Object bean) { - try { - Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); - field.setAccessible(true); - return (List) field.get(bean); - } catch (IllegalArgumentException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - }; - } - -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 66508034..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index 27e9d37d..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - String token = adminService.login(username, password); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java deleted file mode 100644 index 3152ef66..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminUserDetails implements UserDetails { - private String username; - private String password; - private List authorityList; - @Override - public Collection getAuthorities() { - return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return this.password; - } - - @Override - public String getUsername() { - return this.username; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 6528582e..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminUserDetails; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUserDetails getAdminByUsername(String username); - - /** - * 用户名密码登录 - */ - String login(String username, String password); -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index b72fb4e3..00000000 --- a/mall-tiny-deploy/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放默认用户信息 - */ - private List adminUserDetailsList = new ArrayList<>(); - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - - @PostConstruct - private void init(){ - adminUserDetailsList.add(AdminUserDetails.builder() - .username("admin") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_ADMIN")) - .build()); - adminUserDetailsList.add(AdminUserDetails.builder() - .username("macro") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_USER")) - .build()); - } - @Override - public AdminUserDetails getAdminByUsername(String username) { - List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(findList)){ - return findList.get(0); - } - return null; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = getAdminByUsername(username); - if(userDetails==null){ - return token; - } - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - log.warn("登录异常:{}", e.getMessage()); - } - return token; - } -} diff --git a/mall-tiny-deploy/src/main/resources/application-dev.yml b/mall-tiny-deploy/src/main/resources/application-dev.yml deleted file mode 100644 index 78e3911d..00000000 --- a/mall-tiny-deploy/src/main/resources/application-dev.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-deploy/src/main/resources/application-prod.yml b/mall-tiny-deploy/src/main/resources/application-prod.yml deleted file mode 100644 index ab84996a..00000000 --- a/mall-tiny-deploy/src/main/resources/application-prod.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-deploy/src/main/resources/application-qa.yml b/mall-tiny-deploy/src/main/resources/application-qa.yml deleted file mode 100644 index dbbc867a..00000000 --- a/mall-tiny-deploy/src/main/resources/application-qa.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://192.168.3.105:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-deploy/src/main/resources/application.yml b/mall-tiny-deploy/src/main/resources/application.yml deleted file mode 100644 index c6c6f4b4..00000000 --- a/mall-tiny-deploy/src/main/resources/application.yml +++ /dev/null @@ -1,25 +0,0 @@ -server: - port: 8088 - -spring: -# main: -# allow-circular-references: true - mvc: - pathmatch: - matching-strategy: ANT_PATH_MATCHER - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -springfox: - documentation: - enabled: true \ No newline at end of file diff --git a/mall-tiny-deploy/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-deploy/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-deploy/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-deploy/src/main/resources/generator.properties b/mall-tiny-deploy/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-deploy/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-deploy/src/main/resources/generatorConfig.xml b/mall-tiny-deploy/src/main/resources/generatorConfig.xml deleted file mode 100644 index e3c5de53..00000000 --- a/mall-tiny-deploy/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-deploy/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-deploy/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index aeb37555..00000000 --- a/mall-tiny-deploy/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@SpringBootTest -public class MallTinyApplicationTests { - - public void contextLoads() { - } - -} diff --git a/mall-tiny-devtools/.gitignore b/mall-tiny-devtools/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-devtools/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-devtools/pom.xml b/mall-tiny-devtools/pom.xml deleted file mode 100644 index 161a4c2b..00000000 --- a/mall-tiny-devtools/pom.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-devtools - 1.0-SNAPSHOT - mall-tiny-devtools - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-devtools - true - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - false - - - - com.spotify - docker-maven-plugin - 1.2.2 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - http://192.168.5.78:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - - - diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/controller/TestController.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/controller/TestController.java deleted file mode 100644 index 85a36954..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/controller/TestController.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -import java.util.HashMap; -import java.util.Map; - -/** - * Created by macro on 2021/3/25. - */ -@Api(tags = "TestController", description = "SpringBoot Dev Tools测试") -@Controller -@RequestMapping("/test") -public class TestController { - - @ApiOperation("测试修改") - @RequestMapping(value = "/first", method = RequestMethod.GET) - @ResponseBody - public CommonResult first() { - String message = "返回消息"; - return CommonResult.success(null,message); - } -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-devtools/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-devtools/src/main/resources/application.yml b/mall-tiny-devtools/src/main/resources/application.yml deleted file mode 100644 index 32f9a2b8..00000000 --- a/mall-tiny-devtools/src/main/resources/application.yml +++ /dev/null @@ -1,21 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - devtools: - restart: - poll-interval: 2s - quiet-period: 1s - remote: - secret: macro666 - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - - diff --git a/mall-tiny-devtools/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-devtools/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-devtools/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-devtools/src/main/resources/generator.properties b/mall-tiny-devtools/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-devtools/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-devtools/src/main/resources/generatorConfig.xml b/mall-tiny-devtools/src/main/resources/generatorConfig.xml deleted file mode 100644 index 7172a79c..00000000 --- a/mall-tiny-devtools/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-devtools/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-devtools/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-devtools/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-devtools/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-devtools/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-devtools/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-docker-compose/.gitignore b/mall-tiny-docker-compose/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-docker-compose/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-docker-compose/pom.xml b/mall-tiny-docker-compose/pom.xml deleted file mode 100644 index bdeda80b..00000000 --- a/mall-tiny-docker-compose/pom.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-docker-compose - 0.0.1-SNAPSHOT - mall-tiny-docker-compose - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - com.spotify - docker-maven-plugin - 1.1.0 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - http://192.168.3.101:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - - - diff --git a/mall-tiny-docker-compose/src/main/docker/docker-compose.yml b/mall-tiny-docker-compose/src/main/docker/docker-compose.yml deleted file mode 100644 index 1a47ead5..00000000 --- a/mall-tiny-docker-compose/src/main/docker/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: '3' -services: - # 指定服务名称 - db: - # 指定服务使用的镜像 - image: mysql:5.7 - # 指定容器名称 - container_name: mysql - # 指定服务运行的端口 - ports: - - 3306:3306 - # 指定容器中需要挂载的文件 - volumes: - - /mydata/mysql/log:/var/log/mysql - - /mydata/mysql/data:/var/lib/mysql - - /mydata/mysql/conf:/etc/mysql - # 指定容器的环境变量 - environment: - - MYSQL_ROOT_PASSWORD=root - # 指定服务名称 - mall-tiny-docker-compose: - # 指定服务使用的镜像 - image: mall-tiny/mall-tiny-docker-compose:0.0.1-SNAPSHOT - # 指定容器名称 - container_name: mall-tiny-docker-compose - # 指定服务运行的端口 - ports: - - 8080:8080 - # 指定容器中需要挂载的文件 - volumes: - - /etc/localtime:/etc/localtime - - /mydata/app/mall-tiny-docker-compose/logs:/var/logs \ No newline at end of file diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-docker-compose/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-docker-compose/src/main/resources/application.yml b/mall-tiny-docker-compose/src/main/resources/application.yml deleted file mode 100644 index 3cff58c5..00000000 --- a/mall-tiny-docker-compose/src/main/resources/application.yml +++ /dev/null @@ -1,13 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-docker-compose/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-docker-compose/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-docker-compose/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-docker-compose/src/main/resources/generator.properties b/mall-tiny-docker-compose/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-docker-compose/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-docker-compose/src/main/resources/generatorConfig.xml b/mall-tiny-docker-compose/src/main/resources/generatorConfig.xml deleted file mode 100644 index e2a1a7ad..00000000 --- a/mall-tiny-docker-compose/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-docker-compose/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-docker-compose/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-docker-compose/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-docker-compose/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-docker-compose/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-docker-compose/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-docker-file/.gitignore b/mall-tiny-docker-file/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-docker-file/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-docker-file/pom.xml b/mall-tiny-docker-file/pom.xml deleted file mode 100644 index 6b931a78..00000000 --- a/mall-tiny-docker-file/pom.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-docker-file - 0.0.1-SNAPSHOT - mall-tiny-docker-file - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mall-tiny-docker-file/src/main/docker/Dockerfile b/mall-tiny-docker-file/src/main/docker/Dockerfile deleted file mode 100644 index 47fc3f70..00000000 --- a/mall-tiny-docker-file/src/main/docker/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前目录下的jar包复制到docker容器的/目录下 -ADD mall-tiny-docker-file-0.0.1-SNAPSHOT.jar /mall-tiny-docker-file.jar -# 运行过程中创建一个mall-tiny-docker-file.jar文件 -RUN bash -c 'touch /mall-tiny-docker-file.jar' -# 声明服务运行在8080端口 -EXPOSE 8080 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/mall-tiny-docker-file.jar"] -# 指定维护者的名字 -MAINTAINER macrozheng \ No newline at end of file diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-docker-file/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-docker-file/src/main/resources/application.yml b/mall-tiny-docker-file/src/main/resources/application.yml deleted file mode 100644 index 5edcbdbc..00000000 --- a/mall-tiny-docker-file/src/main/resources/application.yml +++ /dev/null @@ -1,13 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-docker-file/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-docker-file/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-docker-file/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-docker-file/src/main/resources/generator.properties b/mall-tiny-docker-file/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-docker-file/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-docker-file/src/main/resources/generatorConfig.xml b/mall-tiny-docker-file/src/main/resources/generatorConfig.xml deleted file mode 100644 index 32ec3d42..00000000 --- a/mall-tiny-docker-file/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-docker-file/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-docker-file/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-docker-file/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-docker-file/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-docker-file/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-docker-file/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-docker-plugin/.gitignore b/mall-tiny-docker-plugin/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-docker-plugin/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-docker-plugin/Dockerfile b/mall-tiny-docker-plugin/Dockerfile deleted file mode 100644 index 27d151e0..00000000 --- a/mall-tiny-docker-plugin/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前maven目录生成的文件复制到docker容器的/目录下 -COPY maven / -# 声明服务运行在8080端口 -EXPOSE 8080 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/mall-tiny-fabric-0.0.1-SNAPSHOT.jar"] -# 指定维护者的名字 -MAINTAINER macrozheng \ No newline at end of file diff --git a/mall-tiny-docker-plugin/pom.xml b/mall-tiny-docker-plugin/pom.xml deleted file mode 100644 index f2e30fc0..00000000 --- a/mall-tiny-docker-plugin/pom.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-docker-plugin - 0.0.1-SNAPSHOT - mall-tiny-docker-plugin - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.4.0 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - 192.168.3.101:5000/mall-tiny/${project.name}:${project.version} - - true - - - - http://192.168.3.101:2375 - - false - - - - test - - test - - http://192.168.3.101:5000 - - - - - - - - diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-docker-plugin/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-docker-plugin/src/main/resources/application.yml b/mall-tiny-docker-plugin/src/main/resources/application.yml deleted file mode 100644 index 3cff58c5..00000000 --- a/mall-tiny-docker-plugin/src/main/resources/application.yml +++ /dev/null @@ -1,13 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-docker-plugin/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-docker-plugin/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-docker-plugin/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-docker-plugin/src/main/resources/generator.properties b/mall-tiny-docker-plugin/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-docker-plugin/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-docker-plugin/src/main/resources/generatorConfig.xml b/mall-tiny-docker-plugin/src/main/resources/generatorConfig.xml deleted file mode 100644 index 4b9e4b7f..00000000 --- a/mall-tiny-docker-plugin/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-docker-plugin/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-docker-plugin/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index b9c9f418..00000000 --- a/mall-tiny-docker-plugin/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -//@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-docker/pom.xml b/mall-tiny-docker/pom.xml index 13ff85cb..00d199de 100644 --- a/mall-tiny-docker/pom.xml +++ b/mall-tiny-docker/pom.xml @@ -2,25 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-docker - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-docker Demo project for Spring Boot - - UTF-8 - UTF-8 - 1.8 - true - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -44,36 +37,43 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} @@ -84,10 +84,11 @@ spring-boot-maven-plugin
- com.spotify + io.fabric8 docker-maven-plugin - 1.1.0 + ${docker.maven.plugin.version} + build-image package @@ -97,18 +98,33 @@ - mall-tiny/${project.artifactId}:${project.version} - http://192.168.3.101:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - + + ${docker.host} + + + + mall-tiny/${project.name}:${project.version} + + + + openjdk:8 + + ${project.build.finalName}.jar + + + + + / + + artifact + + + ["java", "-jar","-Dspring.profiles.active=prod","/${project.build.finalName}.jar"] + + macrozheng + + + diff --git a/mall-tiny-docker/src/main/docker/Dockerfile b/mall-tiny-docker/src/main/docker/Dockerfile new file mode 100644 index 00000000..188daa59 --- /dev/null +++ b/mall-tiny-docker/src/main/docker/Dockerfile @@ -0,0 +1,10 @@ +# 该镜像需要依赖的基础镜像 +FROM openjdk:8 +# 将当前目录下的jar包复制到docker容器的/目录下 +ADD mall-tiny-docker-1.0-SNAPSHOT.jar /mall-tiny-docker-1.0-SNAPSHOT.jar +# 声明服务运行在8080端口 +EXPOSE 8080 +# 指定docker容器启动时运行jar包 +ENTRYPOINT ["java", "-jar","-Dspring.profiles.active=prod","/mall-tiny-docker-1.0-SNAPSHOT.jar"] +# 指定维护者的名字 +MAINTAINER macrozheng \ No newline at end of file diff --git a/mall-tiny-docker/src/main/docker/docker-compose.yml b/mall-tiny-docker/src/main/docker/docker-compose.yml new file mode 100644 index 00000000..58484055 --- /dev/null +++ b/mall-tiny-docker/src/main/docker/docker-compose.yml @@ -0,0 +1,31 @@ +version: '3' +services: + # 指定服务名称 + db: + # 指定服务使用的镜像 + image: mysql:5.7 + # 指定容器名称 + container_name: mysql + # 指定服务运行的端口 + ports: + - 3306:3306 + # 指定容器中需要挂载的文件 + volumes: + - /mydata/mysql/log:/var/log/mysql + - /mydata/mysql/data:/var/lib/mysql + # 指定容器的环境变量 + environment: + - MYSQL_ROOT_PASSWORD=root + # 指定服务名称 + mall-tiny-docker: + # 指定服务使用的镜像 + image: mall-tiny/mall-tiny-docker:1.0-SNAPSHOT + # 指定容器名称 + container_name: mall-tiny-docker + # 指定服务运行的端口 + ports: + - 8080:8080 + # 指定容器中需要挂载的文件 + volumes: + - /etc/localtime:/etc/localtime + - /mydata/app/mall-tiny-docker/logs:/var/logs \ No newline at end of file diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ec54365e 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.mbg.mapper") diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 3918a401..caa97432 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,32 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger相关配置 + * @date 2022/11/23 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } @@ -35,8 +42,42 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + } diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 857c9eca..6d3295e5 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,11 +19,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..e3581bd5 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -17,6 +17,7 @@ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +36,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +67,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java index 617584fb..408d4737 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -6,15 +6,15 @@ import org.apache.ibatis.annotations.Param; public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); + long countByExample(PmsBrandExample example); int deleteByExample(PmsBrandExample example); int deleteByPrimaryKey(Long id); - int insert(PmsBrand record); + int insert(PmsBrand row); - int insertSelective(PmsBrand record); + int insertSelective(PmsBrand row); List selectByExampleWithBLOBs(PmsBrandExample example); @@ -22,15 +22,15 @@ public interface PmsBrandMapper { PmsBrand selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByPrimaryKeySelective(PmsBrand record); + int updateByPrimaryKeySelective(PmsBrand row); - int updateByPrimaryKeyWithBLOBs(PmsBrand record); + int updateByPrimaryKeyWithBLOBs(PmsBrand row); - int updateByPrimaryKey(PmsBrand record); + int updateByPrimaryKey(PmsBrand row); } \ No newline at end of file diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java index 0d5dde95..5750cd16 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java @@ -4,18 +4,22 @@ import java.io.Serializable; public class PmsBrand implements Serializable { + @ApiModelProperty(value = "主键ID") private Long id; + @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "首字母") private String firstLetter; + @ApiModelProperty(value = "排序") private Integer sort; @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") private Integer factoryStatus; + @ApiModelProperty(value = "是否显示") private Integer showStatus; @ApiModelProperty(value = "产品数量") diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java index 4e4a1108..c7e5880b 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -11,7 +11,7 @@ public class PmsBrandExample { protected List oredCriteria; public PmsBrandExample() { - oredCriteria = new ArrayList(); + oredCriteria = new ArrayList<>(); } public void setOrderByClause(String orderByClause) { @@ -68,7 +68,7 @@ protected abstract static class GeneratedCriteria { protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -746,7 +746,6 @@ public Criteria andBigPicNotBetween(String value1, String value2) { } public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-docker/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-docker/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-docker/src/main/resources/application-prod.yml b/mall-tiny-docker/src/main/resources/application-prod.yml new file mode 100644 index 00000000..9674aa1a --- /dev/null +++ b/mall-tiny-docker/src/main/resources/application-prod.yml @@ -0,0 +1,8 @@ +server: + port: 8080 + +spring: + datasource: + url: jdbc:mysql://db:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + username: root + password: root diff --git a/mall-tiny-docker/src/main/resources/application.yml b/mall-tiny-docker/src/main/resources/application.yml index 5edcbdbc..37c67828 100644 --- a/mall-tiny-docker/src/main/resources/application.yml +++ b/mall-tiny-docker/src/main/resources/application.yml @@ -3,11 +3,14 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-docker/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-docker/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml index 1842e269..8d47261a 100644 --- a/mall-tiny-docker/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ b/mall-tiny-docker/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -212,7 +212,7 @@ - select count(*) from pms_brand @@ -221,74 +221,74 @@ update pms_brand - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, - - show_status = #{record.showStatus,jdbcType=INTEGER}, + + show_status = #{row.showStatus,jdbcType=INTEGER}, - - product_count = #{record.productCount,jdbcType=INTEGER}, + + product_count = #{row.productCount,jdbcType=INTEGER}, - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, - - logo = #{record.logo,jdbcType=VARCHAR}, + + logo = #{row.logo,jdbcType=VARCHAR}, - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, - + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + diff --git a/mall-tiny-docker/src/main/resources/generator.properties b/mall-tiny-docker/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-docker/src/main/resources/generator.properties +++ b/mall-tiny-docker/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-docker/src/main/resources/generatorConfig.xml b/mall-tiny-docker/src/main/resources/generatorConfig.xml index e2a1a7ad..dc5a2f87 100644 --- a/mall-tiny-docker/src/main/resources/generatorConfig.xml +++ b/mall-tiny-docker/src/main/resources/generatorConfig.xml @@ -6,33 +6,40 @@ + + + + + - + + + - + - + - + - + - + diff --git a/mall-tiny-docker/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-docker/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-docker/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-docker/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-docker/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-docker/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-docker/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-drone/.drone.yml b/mall-tiny-drone/.drone.yml deleted file mode 100644 index b4e60692..00000000 --- a/mall-tiny-drone/.drone.yml +++ /dev/null @@ -1,39 +0,0 @@ -kind: pipeline # 定义对象类型,还有secret和signature两种类型 -type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型 -name: mall-tiny-drone # 定义流水线名称 - -steps: # 定义流水线执行步骤,这些步骤将顺序执行 - - name: package # 流水线名称 - image: maven:3-jdk-8 # 定义创建容器的Docker镜像 - volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置 - - name: maven-cache - path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载 - - name: maven-build - path: /app/build # 将应用打包好的Jar和执行脚本挂载出来 - commands: # 定义在Docker容器中执行的shell命令 - - mvn clean package # 应用打包命令 - - cp target/mall-tiny-drone-1.0-SNAPSHOT.jar /app/build/mall-tiny-drone-1.0-SNAPSHOT.jar - - cp Dockerfile /app/build/Dockerfile - - cp run.sh /app/build/run.sh - - - name: build-start - image: appleboy/drone-ssh # SSH工具镜像 - settings: - host: 192.168.5.78 # 远程连接地址 - username: root # 远程连接账号 - password: - from_secret: ssh_password # 从Secret中读取SSH密码 - port: 22 # 远程连接端口 - command_timeout: 5m # 远程执行命令超时时间 - script: - - cd /mydata/maven/build # 进入宿主机构建目录 - - chmod +x run.sh # 更改为可执行脚本 - - ./run.sh # 运行脚本打包应用镜像并运行 - -volumes: # 定义流水线挂载目录,用于共享数据 - - name: maven-build - host: - path: /mydata/maven/build # 从宿主机中挂载的目录 - - name: maven-cache - host: - path: /mydata/maven/cache \ No newline at end of file diff --git a/mall-tiny-drone/.gitignore b/mall-tiny-drone/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-drone/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-drone/Dockerfile b/mall-tiny-drone/Dockerfile deleted file mode 100644 index f945520d..00000000 --- a/mall-tiny-drone/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前目录下的jar包复制到docker容器的/目录下 -ADD mall-tiny-drone-1.0-SNAPSHOT.jar /app.jar -# 声明服务运行在8080端口 -EXPOSE 8088 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/app.jar"] -# 指定维护者的名字 -MAINTAINER macrozheng \ No newline at end of file diff --git a/mall-tiny-drone/pom.xml b/mall-tiny-drone/pom.xml deleted file mode 100644 index 6ab565a9..00000000 --- a/mall-tiny-drone/pom.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-drone - 1.0-SNAPSHOT - mall-tiny-drone - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - - spring-boot-starter-tomcat - org.springframework.boot - - - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 4.5.7 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.springframework.boot - spring-boot-starter-undertow - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-drone/run.sh b/mall-tiny-drone/run.sh deleted file mode 100644 index da0dab74..00000000 --- a/mall-tiny-drone/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash -# 定义应用组名 -group_name='mall-tiny' -# 定义应用名称 -app_name='mall-tiny-drone' -# 定义应用版本 -app_version='1.0-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 8088:8088 --name ${app_name} \ ---link mysql:db \ --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-tiny-drone/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java deleted file mode 100644 index 2094034b..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.config; - -import lombok.Getter; -import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -/** - * 用于配置白名单资源路径 - * Created by macro on 2018/11/5. - */ -@Getter -@Setter -@Component -@ConfigurationProperties(prefix = "secure.ignored") -public class IgnoreUrlsConfig { - - private List urls = new ArrayList<>(); - -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index 6454f1ae..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.macro.mall.tiny.config; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ArrayUtil; -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - -import java.util.List; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - @Autowired - private IgnoreUrlsConfig ignoreUrlsConfig; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - List urls = ignoreUrlsConfig.getUrls(); - String[] urlArray = ArrayUtil.toArray(urls, String.class); - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET,urlArray) // 允许对于网站静态资源的无授权访问 - .permitAll() - .antMatchers(HttpMethod.POST,urlArray) // 允许对于网站静态资源的无授权访问 - .permitAll() - .antMatchers("/admin/login")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - AdminUserDetails admin = adminService.getAdminByUsername(username); - if (admin != null) { - return admin; - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 0115ca4f..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.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.*; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spi.service.contexts.SecurityContext; -import springfox.documentation.spring.web.plugins.Docket; - -import java.util.ArrayList; -import java.util.List; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - 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-tiny-drone/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 66508034..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index 27e9d37d..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - String token = adminService.login(username, password); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java deleted file mode 100644 index 3152ef66..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminUserDetails implements UserDetails { - private String username; - private String password; - private List authorityList; - @Override - public Collection getAuthorities() { - return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return this.password; - } - - @Override - public String getUsername() { - return this.username; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 6528582e..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminUserDetails; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUserDetails getAdminByUsername(String username); - - /** - * 用户名密码登录 - */ - String login(String username, String password); -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 45347be4..00000000 --- a/mall-tiny-drone/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放默认用户信息 - */ - private List adminUserDetailsList = new ArrayList<>(); - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - - @PostConstruct - private void init(){ - adminUserDetailsList.add(AdminUserDetails.builder() - .username("admin") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_ADMIN")) - .build()); - adminUserDetailsList.add(AdminUserDetails.builder() - .username("macro") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_USER")) - .build()); - } - @Override - public AdminUserDetails getAdminByUsername(String username) { - List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(findList)){ - return findList.get(0); - } - return null; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = getAdminByUsername(username); - if(userDetails==null){ - return token; - } - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - log.warn("登录异常:{}", e.getMessage()); - } - return token; - } -} diff --git a/mall-tiny-drone/src/main/resources/application.yml b/mall-tiny-drone/src/main/resources/application.yml deleted file mode 100644 index dcf6115c..00000000 --- a/mall-tiny-drone/src/main/resources/application.yml +++ /dev/null @@ -1,51 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -springfox: - documentation: - enabled: true - - -secure: - ignored: - urls: - - / - - /swagger-ui/ - - /*.html - - /favicon.ico - - /**/*.html - - /**/*.css - - /**/*.js - - /swagger-resources/** - - /v2/api-docs/** - - /actuator/** - -management: - endpoints: - web: - exposure: - include: '*' - endpoint: - shutdown: - enabled: true -logging: - level: - com.macro.mall.tiny: debug diff --git a/mall-tiny-drone/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-drone/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-drone/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-drone/src/main/resources/generator.properties b/mall-tiny-drone/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-drone/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-drone/src/main/resources/generatorConfig.xml b/mall-tiny-drone/src/main/resources/generatorConfig.xml deleted file mode 100644 index 4dbaeb47..00000000 --- a/mall-tiny-drone/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-drone/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-drone/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index 6675173d..00000000 --- a/mall-tiny-drone/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.macro.mall.tiny; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import lombok.extern.log4j.Log4j; -import lombok.extern.slf4j.Slf4j; -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.test.context.junit4.SpringRunner; - -import java.util.List; - -@RunWith(SpringRunner.class) -@SpringBootTest -@Slf4j -public class MallTinyApplicationTests { - @Autowired - private PmsBrandService pmsBrandService; - - @Test - public void contextLoads() { - } - - @Test - public void testMethod() { - List brandList = pmsBrandService.listAllBrand(); - log.info("testMethod:{}", brandList); - } - -} diff --git a/mall-tiny-dynamic-sql/.gitignore b/mall-tiny-dynamic-sql/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-dynamic-sql/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-dynamic-sql/pom.xml b/mall-tiny-dynamic-sql/pom.xml deleted file mode 100644 index 630f4255..00000000 --- a/mall-tiny-dynamic-sql/pom.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-dynamic-sql - 0.0.1-SNAPSHOT - mall-tiny-dynamic-sql - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - cn.hutool - hutool-all - 4.5.7 - - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - 2.1.3 - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.3.0 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.4.0 - - - - org.mybatis.dynamic-sql - mybatis-dynamic-sql - 1.2.1 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index f4584332..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) -public class MyBatisConfig { -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index 3bf2827f..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.AdminRoleDto; -import com.macro.mall.tiny.domain.RoleStatDto; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 后台用户管理Controller - * Created by macro on 2020/12/8. - */ -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RestController -@RequestMapping("/admin") -public class UmsAdminController { - - @Autowired - private UmsAdminService adminService; - - @ApiOperation("创建") - @PostMapping("/create") - public CommonResult create(@RequestBody UmsAdmin entity) { - adminService.create(entity); - return CommonResult.success(null); - } - - @ApiOperation("修改") - @PostMapping("/update/{id}") - public CommonResult update(@PathVariable Long id, @RequestBody UmsAdmin entity) { - entity.setId(id); - adminService.update(entity); - return CommonResult.success(null); - } - - @ApiOperation("删除") - @PostMapping("/delete/{id}") - public CommonResult delete(@PathVariable Long id) { - adminService.delete(id); - return CommonResult.success(null); - } - - @ApiOperation("根据ID查询") - @GetMapping("/select/{id}") - public CommonResult select(@PathVariable Long id) { - UmsAdmin entity = adminService.select(id); - return CommonResult.success(entity); - } - - @ApiOperation("分页查询所有") - @GetMapping("/listAll") - public CommonResult> listAll(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "5") - @ApiParam("每页数量") Integer pageSize) { - List list = adminService.listAll(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(list)); - } - - @ApiOperation("分页条件查询") - @GetMapping("/list") - public CommonResult> list(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "5") - @ApiParam("每页数量") Integer pageSize, - @RequestParam(required = false) - @ApiParam("用户名") String username, - @RequestParam - @ApiParam(value = "状态",required = true) List statusList) { - List list = adminService.list(pageNum, pageSize, username, statusList); - return CommonResult.success(CommonPage.restPage(list)); - } - - @ApiOperation("使用Lambda表达式分页查询") - @GetMapping("/lambdaList") - public CommonResult> lambdaList(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "5") - @ApiParam("每页数量") Integer pageSize, - @RequestParam(required = false) - @ApiParam(value = "用户名") String username, - @RequestParam - @ApiParam(value = "状态",required = true) List statusList) { - List list = adminService.lambdaList(pageNum, pageSize, username, statusList); - return CommonResult.success(CommonPage.restPage(list)); - } - - @ApiOperation("使用子查询") - @GetMapping("/subList") - public CommonResult> subList(@RequestParam Long roleId) { - List list = adminService.subList(roleId); - return CommonResult.success(list); - } - - @ApiOperation("使用Group和Join查询") - @GetMapping("/groupList") - public CommonResult> groupList() { - List list = adminService.groupList(); - return CommonResult.success(list); - } - - @ApiOperation("条件删除") - @GetMapping("/deleteByUsername") - public CommonResult deleteByUsername(@RequestParam String username) { - adminService.deleteByUsername(username); - return CommonResult.success(null); - } - - @ApiOperation("条件修改") - @GetMapping("/updateByIds") - public CommonResult updateByIds(List ids, Integer status) { - adminService.updateByIds(ids, status); - return CommonResult.success(null); - } - - @ApiOperation("一对多查询") - @GetMapping("/selectWithRoleList") - public CommonResult selectWithRoleList(Long id) { - AdminRoleDto adminRoleDto = adminService.selectWithRoleList(id); - return CommonResult.success(adminRoleDto); - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java deleted file mode 100644 index 79b95732..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.dao; - -import com.macro.mall.tiny.domain.AdminRoleDto; -import com.macro.mall.tiny.domain.RoleStatDto; -import org.apache.ibatis.annotations.Result; -import org.apache.ibatis.annotations.ResultMap; -import org.apache.ibatis.annotations.Results; -import org.apache.ibatis.annotations.SelectProvider; -import org.apache.ibatis.type.JdbcType; -import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; -import org.mybatis.dynamic.sql.util.SqlProviderAdapter; - -import java.util.List; - -/** - * Created by macro on 2020/12/9. - */ -public interface UmsAdminDao { - @SelectProvider(type = SqlProviderAdapter.class, method = "select") - @Results(id = "RoleStatResult", value = { - @Result(column = "roleId", property = "roleId", jdbcType = JdbcType.BIGINT, id = true), - @Result(column = "roleName", property = "roleName", jdbcType = JdbcType.VARCHAR), - @Result(column = "count", property = "count", jdbcType = JdbcType.INTEGER) - }) - List groupList(SelectStatementProvider selectStatement); - - @SelectProvider(type = SqlProviderAdapter.class, method = "select") - @ResultMap("AdminRoleResult") - AdminRoleDto selectWithRoleList(SelectStatementProvider selectStatement); -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/domain/AdminRoleDto.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/domain/AdminRoleDto.java deleted file mode 100644 index 3912b800..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/domain/AdminRoleDto.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.domain; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsRole; - -import java.util.List; - -/** - * Created by macro on 2020/12/9. - */ -public class AdminRoleDto extends UmsAdmin { - - private List roleList; - - public List getRoleList() { - return roleList; - } - - public void setRoleList(List roleList) { - this.roleList = roleList; - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/domain/RoleStatDto.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/domain/RoleStatDto.java deleted file mode 100644 index 2c1ff6e2..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/domain/RoleStatDto.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.domain; - -/** - * Created by macro on 2020/12/9. - */ -public class RoleStatDto { - private Long roleId; - private String roleName; - private Integer count; - - public Long getRoleId() { - return roleId; - } - - public String getRoleName() { - return roleName; - } - - public Integer getCount() { - return count; - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index fdf8e1cb..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import cn.hutool.core.collection.CollUtil; -import com.sun.org.apache.regexp.internal.RE; -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; -import java.util.Set; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX = "Example"; - private static final String MAPPER_SUFFIX = "Mapper"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME = "io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - @Override - public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set imports) { - if (!addRemarkComments || CollUtil.isEmpty(imports)) return; - long count = imports.stream() - .filter(item -> API_MODEL_PROPERTY_FULL_CLASS_NAME.equals(item.getFullyQualifiedName())) - .count(); - if (count <= 0L) { - return; - } - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if (StringUtility.stringHasValue(remarks)) { - //数据库中特殊字符需要转义 - if (remarks.contains("\"")) { - remarks = remarks.replace("\"", "'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \"" + remarks + "\")"); - } - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - String fullyQualifiedName = compilationUnit.getType().getFullyQualifiedName(); - if (!fullyQualifiedName.contains(MAPPER_SUFFIX) && !fullyQualifiedName.contains(EXAMPLE_SUFFIX)) { - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminDynamicSqlSupport.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminDynamicSqlSupport.java deleted file mode 100644 index ad11ad38..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminDynamicSqlSupport.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import java.sql.JDBCType; -import java.util.Date; -import javax.annotation.Generated; -import org.mybatis.dynamic.sql.SqlColumn; -import org.mybatis.dynamic.sql.SqlTable; - -public final class UmsAdminDynamicSqlSupport { - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public static final UmsAdmin umsAdmin = new UmsAdmin(); - - public static final SqlColumn id = umsAdmin.id; - - public static final SqlColumn username = umsAdmin.username; - - public static final SqlColumn password = umsAdmin.password; - - public static final SqlColumn icon = umsAdmin.icon; - - public static final SqlColumn email = umsAdmin.email; - - public static final SqlColumn nickName = umsAdmin.nickName; - - public static final SqlColumn note = umsAdmin.note; - - public static final SqlColumn createTime = umsAdmin.createTime; - - public static final SqlColumn loginTime = umsAdmin.loginTime; - - public static final SqlColumn status = umsAdmin.status; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public static final class UmsAdmin extends SqlTable { - public final SqlColumn id = column("id", JDBCType.BIGINT); - - public final SqlColumn username = column("username", JDBCType.VARCHAR); - - public final SqlColumn password = column("password", JDBCType.VARCHAR); - - public final SqlColumn icon = column("icon", JDBCType.VARCHAR); - - public final SqlColumn email = column("email", JDBCType.VARCHAR); - - public final SqlColumn nickName = column("nick_name", JDBCType.VARCHAR); - - public final SqlColumn note = column("note", JDBCType.VARCHAR); - - public final SqlColumn createTime = column("create_time", JDBCType.TIMESTAMP); - - public final SqlColumn loginTime = column("login_time", JDBCType.TIMESTAMP); - - public final SqlColumn status = column("status", JDBCType.INTEGER); - - public UmsAdmin() { - super("ums_admin"); - } - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 244fee67..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import static com.macro.mall.tiny.mbg.mapper.UmsAdminDynamicSqlSupport.*; -import static org.mybatis.dynamic.sql.SqlBuilder.*; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import java.util.List; -import java.util.Optional; -import javax.annotation.Generated; -import org.apache.ibatis.annotations.DeleteProvider; -import org.apache.ibatis.annotations.InsertProvider; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Result; -import org.apache.ibatis.annotations.ResultMap; -import org.apache.ibatis.annotations.Results; -import org.apache.ibatis.annotations.SelectKey; -import org.apache.ibatis.annotations.SelectProvider; -import org.apache.ibatis.annotations.UpdateProvider; -import org.apache.ibatis.type.JdbcType; -import org.mybatis.dynamic.sql.BasicColumn; -import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; -import org.mybatis.dynamic.sql.delete.render.DeleteStatementProvider; -import org.mybatis.dynamic.sql.insert.render.InsertStatementProvider; -import org.mybatis.dynamic.sql.select.CountDSLCompleter; -import org.mybatis.dynamic.sql.select.SelectDSLCompleter; -import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; -import org.mybatis.dynamic.sql.update.UpdateDSL; -import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; -import org.mybatis.dynamic.sql.update.UpdateModel; -import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; -import org.mybatis.dynamic.sql.util.SqlProviderAdapter; -import org.mybatis.dynamic.sql.util.mybatis3.MyBatis3Utils; - -@Mapper -public interface UmsAdminMapper { - @Generated("org.mybatis.generator.api.MyBatisGenerator") - BasicColumn[] selectList = BasicColumn.columnList(id, username, password, icon, email, nickName, note, createTime, loginTime, status); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - long count(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @DeleteProvider(type=SqlProviderAdapter.class, method="delete") - int delete(DeleteStatementProvider deleteStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @InsertProvider(type=SqlProviderAdapter.class, method="insert") - @SelectKey(statement="SELECT LAST_INSERT_ID()", keyProperty="record.id", before=false, resultType=Long.class) - int insert(InsertStatementProvider insertStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - @ResultMap("UmsAdminResult") - Optional selectOne(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - @Results(id="UmsAdminResult", value = { - @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), - @Result(column="username", property="username", jdbcType=JdbcType.VARCHAR), - @Result(column="password", property="password", jdbcType=JdbcType.VARCHAR), - @Result(column="icon", property="icon", jdbcType=JdbcType.VARCHAR), - @Result(column="email", property="email", jdbcType=JdbcType.VARCHAR), - @Result(column="nick_name", property="nickName", jdbcType=JdbcType.VARCHAR), - @Result(column="note", property="note", jdbcType=JdbcType.VARCHAR), - @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), - @Result(column="login_time", property="loginTime", jdbcType=JdbcType.TIMESTAMP), - @Result(column="status", property="status", jdbcType=JdbcType.INTEGER) - }) - List selectMany(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @UpdateProvider(type=SqlProviderAdapter.class, method="update") - int update(UpdateStatementProvider updateStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default long count(CountDSLCompleter completer) { - return MyBatis3Utils.countFrom(this::count, umsAdmin, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int delete(DeleteDSLCompleter completer) { - return MyBatis3Utils.deleteFrom(this::delete, umsAdmin, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int deleteByPrimaryKey(Long id_) { - return delete(c -> - c.where(id, isEqualTo(id_)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int insert(UmsAdmin record) { - return MyBatis3Utils.insert(this::insert, record, umsAdmin, c -> - c.map(username).toProperty("username") - .map(password).toProperty("password") - .map(icon).toProperty("icon") - .map(email).toProperty("email") - .map(nickName).toProperty("nickName") - .map(note).toProperty("note") - .map(createTime).toProperty("createTime") - .map(loginTime).toProperty("loginTime") - .map(status).toProperty("status") - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int insertSelective(UmsAdmin record) { - return MyBatis3Utils.insert(this::insert, record, umsAdmin, c -> - c.map(username).toPropertyWhenPresent("username", record::getUsername) - .map(password).toPropertyWhenPresent("password", record::getPassword) - .map(icon).toPropertyWhenPresent("icon", record::getIcon) - .map(email).toPropertyWhenPresent("email", record::getEmail) - .map(nickName).toPropertyWhenPresent("nickName", record::getNickName) - .map(note).toPropertyWhenPresent("note", record::getNote) - .map(createTime).toPropertyWhenPresent("createTime", record::getCreateTime) - .map(loginTime).toPropertyWhenPresent("loginTime", record::getLoginTime) - .map(status).toPropertyWhenPresent("status", record::getStatus) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default Optional selectOne(SelectDSLCompleter completer) { - return MyBatis3Utils.selectOne(this::selectOne, selectList, umsAdmin, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default List select(SelectDSLCompleter completer) { - return MyBatis3Utils.selectList(this::selectMany, selectList, umsAdmin, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default List selectDistinct(SelectDSLCompleter completer) { - return MyBatis3Utils.selectDistinct(this::selectMany, selectList, umsAdmin, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default Optional selectByPrimaryKey(Long id_) { - return selectOne(c -> - c.where(id, isEqualTo(id_)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int update(UpdateDSLCompleter completer) { - return MyBatis3Utils.update(this::update, umsAdmin, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - static UpdateDSL updateAllColumns(UmsAdmin record, UpdateDSL dsl) { - return dsl.set(username).equalTo(record::getUsername) - .set(password).equalTo(record::getPassword) - .set(icon).equalTo(record::getIcon) - .set(email).equalTo(record::getEmail) - .set(nickName).equalTo(record::getNickName) - .set(note).equalTo(record::getNote) - .set(createTime).equalTo(record::getCreateTime) - .set(loginTime).equalTo(record::getLoginTime) - .set(status).equalTo(record::getStatus); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - static UpdateDSL updateSelectiveColumns(UmsAdmin record, UpdateDSL dsl) { - return dsl.set(username).equalToWhenPresent(record::getUsername) - .set(password).equalToWhenPresent(record::getPassword) - .set(icon).equalToWhenPresent(record::getIcon) - .set(email).equalToWhenPresent(record::getEmail) - .set(nickName).equalToWhenPresent(record::getNickName) - .set(note).equalToWhenPresent(record::getNote) - .set(createTime).equalToWhenPresent(record::getCreateTime) - .set(loginTime).equalToWhenPresent(record::getLoginTime) - .set(status).equalToWhenPresent(record::getStatus); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int updateByPrimaryKey(UmsAdmin record) { - return update(c -> - c.set(username).equalTo(record::getUsername) - .set(password).equalTo(record::getPassword) - .set(icon).equalTo(record::getIcon) - .set(email).equalTo(record::getEmail) - .set(nickName).equalTo(record::getNickName) - .set(note).equalTo(record::getNote) - .set(createTime).equalTo(record::getCreateTime) - .set(loginTime).equalTo(record::getLoginTime) - .set(status).equalTo(record::getStatus) - .where(id, isEqualTo(record::getId)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int updateByPrimaryKeySelective(UmsAdmin record) { - return update(c -> - c.set(username).equalToWhenPresent(record::getUsername) - .set(password).equalToWhenPresent(record::getPassword) - .set(icon).equalToWhenPresent(record::getIcon) - .set(email).equalToWhenPresent(record::getEmail) - .set(nickName).equalToWhenPresent(record::getNickName) - .set(note).equalToWhenPresent(record::getNote) - .set(createTime).equalToWhenPresent(record::getCreateTime) - .set(loginTime).equalToWhenPresent(record::getLoginTime) - .set(status).equalToWhenPresent(record::getStatus) - .where(id, isEqualTo(record::getId)) - ); - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationDynamicSqlSupport.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationDynamicSqlSupport.java deleted file mode 100644 index b6a83320..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationDynamicSqlSupport.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import java.sql.JDBCType; -import javax.annotation.Generated; -import org.mybatis.dynamic.sql.SqlColumn; -import org.mybatis.dynamic.sql.SqlTable; - -public final class UmsAdminRoleRelationDynamicSqlSupport { - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public static final UmsAdminRoleRelation umsAdminRoleRelation = new UmsAdminRoleRelation(); - - public static final SqlColumn id = umsAdminRoleRelation.id; - - public static final SqlColumn adminId = umsAdminRoleRelation.adminId; - - public static final SqlColumn roleId = umsAdminRoleRelation.roleId; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public static final class UmsAdminRoleRelation extends SqlTable { - public final SqlColumn id = column("id", JDBCType.BIGINT); - - public final SqlColumn adminId = column("admin_id", JDBCType.BIGINT); - - public final SqlColumn roleId = column("role_id", JDBCType.BIGINT); - - public UmsAdminRoleRelation() { - super("ums_admin_role_relation"); - } - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index a06fea41..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import static com.macro.mall.tiny.mbg.mapper.UmsAdminRoleRelationDynamicSqlSupport.*; -import static org.mybatis.dynamic.sql.SqlBuilder.*; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import java.util.List; -import java.util.Optional; -import javax.annotation.Generated; -import org.apache.ibatis.annotations.DeleteProvider; -import org.apache.ibatis.annotations.InsertProvider; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Result; -import org.apache.ibatis.annotations.ResultMap; -import org.apache.ibatis.annotations.Results; -import org.apache.ibatis.annotations.SelectKey; -import org.apache.ibatis.annotations.SelectProvider; -import org.apache.ibatis.annotations.UpdateProvider; -import org.apache.ibatis.type.JdbcType; -import org.mybatis.dynamic.sql.BasicColumn; -import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; -import org.mybatis.dynamic.sql.delete.render.DeleteStatementProvider; -import org.mybatis.dynamic.sql.insert.render.InsertStatementProvider; -import org.mybatis.dynamic.sql.select.CountDSLCompleter; -import org.mybatis.dynamic.sql.select.SelectDSLCompleter; -import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; -import org.mybatis.dynamic.sql.update.UpdateDSL; -import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; -import org.mybatis.dynamic.sql.update.UpdateModel; -import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; -import org.mybatis.dynamic.sql.util.SqlProviderAdapter; -import org.mybatis.dynamic.sql.util.mybatis3.MyBatis3Utils; - -@Mapper -public interface UmsAdminRoleRelationMapper { - @Generated("org.mybatis.generator.api.MyBatisGenerator") - BasicColumn[] selectList = BasicColumn.columnList(id, adminId, roleId); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - long count(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @DeleteProvider(type=SqlProviderAdapter.class, method="delete") - int delete(DeleteStatementProvider deleteStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @InsertProvider(type=SqlProviderAdapter.class, method="insert") - @SelectKey(statement="SELECT LAST_INSERT_ID()", keyProperty="record.id", before=false, resultType=Long.class) - int insert(InsertStatementProvider insertStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - @ResultMap("UmsAdminRoleRelationResult") - Optional selectOne(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - @Results(id="UmsAdminRoleRelationResult", value = { - @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), - @Result(column="admin_id", property="adminId", jdbcType=JdbcType.BIGINT), - @Result(column="role_id", property="roleId", jdbcType=JdbcType.BIGINT) - }) - List selectMany(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @UpdateProvider(type=SqlProviderAdapter.class, method="update") - int update(UpdateStatementProvider updateStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default long count(CountDSLCompleter completer) { - return MyBatis3Utils.countFrom(this::count, umsAdminRoleRelation, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int delete(DeleteDSLCompleter completer) { - return MyBatis3Utils.deleteFrom(this::delete, umsAdminRoleRelation, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int deleteByPrimaryKey(Long id_) { - return delete(c -> - c.where(id, isEqualTo(id_)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int insert(UmsAdminRoleRelation record) { - return MyBatis3Utils.insert(this::insert, record, umsAdminRoleRelation, c -> - c.map(adminId).toProperty("adminId") - .map(roleId).toProperty("roleId") - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int insertSelective(UmsAdminRoleRelation record) { - return MyBatis3Utils.insert(this::insert, record, umsAdminRoleRelation, c -> - c.map(adminId).toPropertyWhenPresent("adminId", record::getAdminId) - .map(roleId).toPropertyWhenPresent("roleId", record::getRoleId) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default Optional selectOne(SelectDSLCompleter completer) { - return MyBatis3Utils.selectOne(this::selectOne, selectList, umsAdminRoleRelation, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default List select(SelectDSLCompleter completer) { - return MyBatis3Utils.selectList(this::selectMany, selectList, umsAdminRoleRelation, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default List selectDistinct(SelectDSLCompleter completer) { - return MyBatis3Utils.selectDistinct(this::selectMany, selectList, umsAdminRoleRelation, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default Optional selectByPrimaryKey(Long id_) { - return selectOne(c -> - c.where(id, isEqualTo(id_)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int update(UpdateDSLCompleter completer) { - return MyBatis3Utils.update(this::update, umsAdminRoleRelation, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - static UpdateDSL updateAllColumns(UmsAdminRoleRelation record, UpdateDSL dsl) { - return dsl.set(adminId).equalTo(record::getAdminId) - .set(roleId).equalTo(record::getRoleId); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - static UpdateDSL updateSelectiveColumns(UmsAdminRoleRelation record, UpdateDSL dsl) { - return dsl.set(adminId).equalToWhenPresent(record::getAdminId) - .set(roleId).equalToWhenPresent(record::getRoleId); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int updateByPrimaryKey(UmsAdminRoleRelation record) { - return update(c -> - c.set(adminId).equalTo(record::getAdminId) - .set(roleId).equalTo(record::getRoleId) - .where(id, isEqualTo(record::getId)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int updateByPrimaryKeySelective(UmsAdminRoleRelation record) { - return update(c -> - c.set(adminId).equalToWhenPresent(record::getAdminId) - .set(roleId).equalToWhenPresent(record::getRoleId) - .where(id, isEqualTo(record::getId)) - ); - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleDynamicSqlSupport.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleDynamicSqlSupport.java deleted file mode 100644 index 601c3535..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleDynamicSqlSupport.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import java.sql.JDBCType; -import java.util.Date; -import javax.annotation.Generated; -import org.mybatis.dynamic.sql.SqlColumn; -import org.mybatis.dynamic.sql.SqlTable; - -public final class UmsRoleDynamicSqlSupport { - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public static final UmsRole umsRole = new UmsRole(); - - public static final SqlColumn id = umsRole.id; - - public static final SqlColumn name = umsRole.name; - - public static final SqlColumn description = umsRole.description; - - public static final SqlColumn adminCount = umsRole.adminCount; - - public static final SqlColumn createTime = umsRole.createTime; - - public static final SqlColumn status = umsRole.status; - - public static final SqlColumn sort = umsRole.sort; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public static final class UmsRole extends SqlTable { - public final SqlColumn id = column("id", JDBCType.BIGINT); - - public final SqlColumn name = column("name", JDBCType.VARCHAR); - - public final SqlColumn description = column("description", JDBCType.VARCHAR); - - public final SqlColumn adminCount = column("admin_count", JDBCType.INTEGER); - - public final SqlColumn createTime = column("create_time", JDBCType.TIMESTAMP); - - public final SqlColumn status = column("status", JDBCType.INTEGER); - - public final SqlColumn sort = column("sort", JDBCType.INTEGER); - - public UmsRole() { - super("ums_role"); - } - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index f490c941..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import static com.macro.mall.tiny.mbg.mapper.UmsRoleDynamicSqlSupport.*; -import static org.mybatis.dynamic.sql.SqlBuilder.*; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import java.util.List; -import java.util.Optional; -import javax.annotation.Generated; -import org.apache.ibatis.annotations.DeleteProvider; -import org.apache.ibatis.annotations.InsertProvider; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Result; -import org.apache.ibatis.annotations.ResultMap; -import org.apache.ibatis.annotations.Results; -import org.apache.ibatis.annotations.SelectKey; -import org.apache.ibatis.annotations.SelectProvider; -import org.apache.ibatis.annotations.UpdateProvider; -import org.apache.ibatis.type.JdbcType; -import org.mybatis.dynamic.sql.BasicColumn; -import org.mybatis.dynamic.sql.delete.DeleteDSLCompleter; -import org.mybatis.dynamic.sql.delete.render.DeleteStatementProvider; -import org.mybatis.dynamic.sql.insert.render.InsertStatementProvider; -import org.mybatis.dynamic.sql.select.CountDSLCompleter; -import org.mybatis.dynamic.sql.select.SelectDSLCompleter; -import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; -import org.mybatis.dynamic.sql.update.UpdateDSL; -import org.mybatis.dynamic.sql.update.UpdateDSLCompleter; -import org.mybatis.dynamic.sql.update.UpdateModel; -import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; -import org.mybatis.dynamic.sql.util.SqlProviderAdapter; -import org.mybatis.dynamic.sql.util.mybatis3.MyBatis3Utils; - -@Mapper -public interface UmsRoleMapper { - @Generated("org.mybatis.generator.api.MyBatisGenerator") - BasicColumn[] selectList = BasicColumn.columnList(id, name, description, adminCount, createTime, status, sort); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - long count(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @DeleteProvider(type=SqlProviderAdapter.class, method="delete") - int delete(DeleteStatementProvider deleteStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @InsertProvider(type=SqlProviderAdapter.class, method="insert") - @SelectKey(statement="SELECT LAST_INSERT_ID()", keyProperty="record.id", before=false, resultType=Long.class) - int insert(InsertStatementProvider insertStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - @ResultMap("UmsRoleResult") - Optional selectOne(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @SelectProvider(type=SqlProviderAdapter.class, method="select") - @Results(id="UmsRoleResult", value = { - @Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), - @Result(column="name", property="name", jdbcType=JdbcType.VARCHAR), - @Result(column="description", property="description", jdbcType=JdbcType.VARCHAR), - @Result(column="admin_count", property="adminCount", jdbcType=JdbcType.INTEGER), - @Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), - @Result(column="status", property="status", jdbcType=JdbcType.INTEGER), - @Result(column="sort", property="sort", jdbcType=JdbcType.INTEGER) - }) - List selectMany(SelectStatementProvider selectStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - @UpdateProvider(type=SqlProviderAdapter.class, method="update") - int update(UpdateStatementProvider updateStatement); - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default long count(CountDSLCompleter completer) { - return MyBatis3Utils.countFrom(this::count, umsRole, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int delete(DeleteDSLCompleter completer) { - return MyBatis3Utils.deleteFrom(this::delete, umsRole, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int deleteByPrimaryKey(Long id_) { - return delete(c -> - c.where(id, isEqualTo(id_)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int insert(UmsRole record) { - return MyBatis3Utils.insert(this::insert, record, umsRole, c -> - c.map(name).toProperty("name") - .map(description).toProperty("description") - .map(adminCount).toProperty("adminCount") - .map(createTime).toProperty("createTime") - .map(status).toProperty("status") - .map(sort).toProperty("sort") - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int insertSelective(UmsRole record) { - return MyBatis3Utils.insert(this::insert, record, umsRole, c -> - c.map(name).toPropertyWhenPresent("name", record::getName) - .map(description).toPropertyWhenPresent("description", record::getDescription) - .map(adminCount).toPropertyWhenPresent("adminCount", record::getAdminCount) - .map(createTime).toPropertyWhenPresent("createTime", record::getCreateTime) - .map(status).toPropertyWhenPresent("status", record::getStatus) - .map(sort).toPropertyWhenPresent("sort", record::getSort) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default Optional selectOne(SelectDSLCompleter completer) { - return MyBatis3Utils.selectOne(this::selectOne, selectList, umsRole, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default List select(SelectDSLCompleter completer) { - return MyBatis3Utils.selectList(this::selectMany, selectList, umsRole, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default List selectDistinct(SelectDSLCompleter completer) { - return MyBatis3Utils.selectDistinct(this::selectMany, selectList, umsRole, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default Optional selectByPrimaryKey(Long id_) { - return selectOne(c -> - c.where(id, isEqualTo(id_)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int update(UpdateDSLCompleter completer) { - return MyBatis3Utils.update(this::update, umsRole, completer); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - static UpdateDSL updateAllColumns(UmsRole record, UpdateDSL dsl) { - return dsl.set(name).equalTo(record::getName) - .set(description).equalTo(record::getDescription) - .set(adminCount).equalTo(record::getAdminCount) - .set(createTime).equalTo(record::getCreateTime) - .set(status).equalTo(record::getStatus) - .set(sort).equalTo(record::getSort); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - static UpdateDSL updateSelectiveColumns(UmsRole record, UpdateDSL dsl) { - return dsl.set(name).equalToWhenPresent(record::getName) - .set(description).equalToWhenPresent(record::getDescription) - .set(adminCount).equalToWhenPresent(record::getAdminCount) - .set(createTime).equalToWhenPresent(record::getCreateTime) - .set(status).equalToWhenPresent(record::getStatus) - .set(sort).equalToWhenPresent(record::getSort); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int updateByPrimaryKey(UmsRole record) { - return update(c -> - c.set(name).equalTo(record::getName) - .set(description).equalTo(record::getDescription) - .set(adminCount).equalTo(record::getAdminCount) - .set(createTime).equalTo(record::getCreateTime) - .set(status).equalTo(record::getStatus) - .set(sort).equalTo(record::getSort) - .where(id, isEqualTo(record::getId)) - ); - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - default int updateByPrimaryKeySelective(UmsRole record) { - return update(c -> - c.set(name).equalToWhenPresent(record::getName) - .set(description).equalToWhenPresent(record::getDescription) - .set(adminCount).equalToWhenPresent(record::getAdminCount) - .set(createTime).equalToWhenPresent(record::getCreateTime) - .set(status).equalToWhenPresent(record::getStatus) - .set(sort).equalToWhenPresent(record::getSort) - .where(id, isEqualTo(record::getId)) - ); - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index 4074dcb0..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; -import javax.annotation.Generated; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - private static final long serialVersionUID = 1L; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Long getId() { - return id; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setId(Long id) { - this.id = id; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String getUsername() { - return username; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setUsername(String username) { - this.username = username; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String getPassword() { - return password; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setPassword(String password) { - this.password = password; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String getIcon() { - return icon; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setIcon(String icon) { - this.icon = icon; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String getEmail() { - return email; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setEmail(String email) { - this.email = email; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String getNickName() { - return nickName; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setNickName(String nickName) { - this.nickName = nickName; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String getNote() { - return note; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setNote(String note) { - this.note = note; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Date getCreateTime() { - return createTime; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Date getLoginTime() { - return loginTime; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Integer getStatus() { - return status; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setStatus(Integer status) { - this.status = status; - } - - @Override - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index 6da447fb..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import javax.annotation.Generated; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - private static final long serialVersionUID = 1L; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Long getId() { - return id; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setId(Long id) { - this.id = id; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Long getAdminId() { - return adminId; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Long getRoleId() { - return roleId; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2f98cad6..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; -import javax.annotation.Generated; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - private static final long serialVersionUID = 1L; - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Long getId() { - return id; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setId(Long id) { - this.id = id; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String getName() { - return name; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setName(String name) { - this.name = name; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String getDescription() { - return description; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setDescription(String description) { - this.description = description; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Integer getAdminCount() { - return adminCount; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Date getCreateTime() { - return createTime; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Integer getStatus() { - return status; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setStatus(Integer status) { - this.status = status; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public Integer getSort() { - return sort; - } - - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - @Generated("org.mybatis.generator.api.MyBatisGenerator") - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 4760554b..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminRoleDto; -import com.macro.mall.tiny.domain.RoleStatDto; -import com.macro.mall.tiny.mbg.model.UmsAdmin; - -import java.util.List; - -/** - * 后台用户管理Service - * Created by macro on 2020/12/8. - */ -public interface UmsAdminService { - void create(UmsAdmin entity); - - void update(UmsAdmin entity); - - void delete(Long id); - - UmsAdmin select(Long id); - - List listAll(Integer pageNum, Integer pageSize); - - List list(Integer pageNum, Integer pageSize, String username, List statusList); - - List lambdaList(Integer pageNum, Integer pageSize, String username, List statusList); - - List subList(Long roleId); - - List groupList(); - - void deleteByUsername(String username); - - void updateByIds(List ids,Integer status); - - AdminRoleDto selectWithRoleList(Long id); -} diff --git a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 760d873a..00000000 --- a/mall-tiny-dynamic-sql/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.dao.UmsAdminDao; -import com.macro.mall.tiny.domain.AdminRoleDto; -import com.macro.mall.tiny.domain.RoleStatDto; -import com.macro.mall.tiny.mbg.mapper.*; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.service.UmsAdminService; -import org.mybatis.dynamic.sql.BasicColumn; -import org.mybatis.dynamic.sql.SqlBuilder; -import org.mybatis.dynamic.sql.delete.render.DeleteStatementProvider; -import org.mybatis.dynamic.sql.render.RenderingStrategies; -import org.mybatis.dynamic.sql.render.RenderingStrategy; -import org.mybatis.dynamic.sql.select.SelectDSLCompleter; -import org.mybatis.dynamic.sql.select.render.SelectStatementProvider; -import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; - -import static org.mybatis.dynamic.sql.SqlBuilder.*; - -/** - * 后台用户管理Service实现类 - * Created by macro on 2020/12/8. - */ -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminDao adminDao; - - @Override - public void create(UmsAdmin entity) { - adminMapper.insert(entity); - } - - @Override - public void update(UmsAdmin entity) { - adminMapper.updateByPrimaryKeySelective(entity); - } - - @Override - public void delete(Long id) { - adminMapper.deleteByPrimaryKey(id); - } - - @Override - public UmsAdmin select(Long id) { - Optional optionalEntity = adminMapper.selectByPrimaryKey(id); - return optionalEntity.orElse(null); - } - - @Override - public List listAll(Integer pageNum, Integer pageSize) { - PageHelper.startPage(pageNum, pageSize); - return adminMapper.select(SelectDSLCompleter.allRows()); - } - - @Override - public List list(Integer pageNum, Integer pageSize, String username, List statusList) { - PageHelper.startPage(pageNum, pageSize); - SelectStatementProvider selectStatement = SqlBuilder.select(UmsAdminMapper.selectList) - .from(UmsAdminDynamicSqlSupport.umsAdmin) - .where(UmsAdminDynamicSqlSupport.username, isEqualToWhenPresent(username)) - .and(UmsAdminDynamicSqlSupport.status, isIn(statusList)) - .orderBy(UmsAdminDynamicSqlSupport.createTime.descending()) - .build() - .render(RenderingStrategies.MYBATIS3); - return adminMapper.selectMany(selectStatement); - } - - @Override - public List lambdaList(Integer pageNum, Integer pageSize, String username, List statusList) { - PageHelper.startPage(pageNum, pageSize); - List list = adminMapper.select(c -> c.where(UmsAdminDynamicSqlSupport.username, isEqualToWhenPresent(username)) - .and(UmsAdminDynamicSqlSupport.status, isIn(statusList)) - .orderBy(UmsAdminDynamicSqlSupport.createTime.descending())); - return list; - } - - @Override - public List subList(Long roleId) { - SelectStatementProvider selectStatement = SqlBuilder.select(UmsAdminMapper.selectList) - .from(UmsAdminDynamicSqlSupport.umsAdmin) - .where(UmsAdminDynamicSqlSupport.id, isIn(SqlBuilder.select(UmsAdminRoleRelationDynamicSqlSupport.adminId) - .from(UmsAdminRoleRelationDynamicSqlSupport.umsAdminRoleRelation) - .where(UmsAdminRoleRelationDynamicSqlSupport.roleId, isEqualTo(roleId)))) - .build() - .render(RenderingStrategies.MYBATIS3); - return adminMapper.selectMany(selectStatement); - } - - @Override - public List groupList() { - SelectStatementProvider selectStatement = SqlBuilder.select(UmsRoleDynamicSqlSupport.id.as("roleId"), UmsRoleDynamicSqlSupport.name.as("roleName"), count(UmsAdminDynamicSqlSupport.id).as("count")) - .from(UmsRoleDynamicSqlSupport.umsRole) - .leftJoin(UmsAdminRoleRelationDynamicSqlSupport.umsAdminRoleRelation) - .on(UmsRoleDynamicSqlSupport.id, equalTo(UmsAdminRoleRelationDynamicSqlSupport.roleId)) - .leftJoin(UmsAdminDynamicSqlSupport.umsAdmin) - .on(UmsAdminRoleRelationDynamicSqlSupport.adminId, equalTo(UmsAdminDynamicSqlSupport.id)) - .groupBy(UmsRoleDynamicSqlSupport.id) - .build() - .render(RenderingStrategies.MYBATIS3); - return adminDao.groupList(selectStatement); - } - - @Override - public void deleteByUsername(String username) { - DeleteStatementProvider deleteStatement = SqlBuilder.deleteFrom(UmsAdminDynamicSqlSupport.umsAdmin) - .where(UmsAdminDynamicSqlSupport.username, isEqualTo(username)) - .build() - .render(RenderingStrategies.MYBATIS3); - adminMapper.delete(deleteStatement); - } - - @Override - public void updateByIds(List ids, Integer status) { - UpdateStatementProvider updateStatement = SqlBuilder.update(UmsAdminDynamicSqlSupport.umsAdmin) - .set(UmsAdminDynamicSqlSupport.status).equalTo(status) - .where(UmsAdminDynamicSqlSupport.id, isIn(ids)) - .build() - .render(RenderingStrategies.MYBATIS3); - adminMapper.update(updateStatement); - } - - @Override - public AdminRoleDto selectWithRoleList(Long id) { - List columnList = new ArrayList<>(CollUtil.toList(UmsAdminMapper.selectList)); - columnList.add(UmsRoleDynamicSqlSupport.id.as("role_id")); - columnList.add(UmsRoleDynamicSqlSupport.name.as("role_name")); - columnList.add(UmsRoleDynamicSqlSupport.description.as("role_description")); - columnList.add(UmsRoleDynamicSqlSupport.createTime.as("role_create_time")); - columnList.add(UmsRoleDynamicSqlSupport.status.as("role_status")); - columnList.add(UmsRoleDynamicSqlSupport.sort.as("role_sort")); - SelectStatementProvider selectStatement = SqlBuilder.select(columnList) - .from(UmsAdminDynamicSqlSupport.umsAdmin) - .leftJoin(UmsAdminRoleRelationDynamicSqlSupport.umsAdminRoleRelation) - .on(UmsAdminDynamicSqlSupport.id, equalTo(UmsAdminRoleRelationDynamicSqlSupport.adminId)) - .leftJoin(UmsRoleDynamicSqlSupport.umsRole) - .on(UmsAdminRoleRelationDynamicSqlSupport.roleId, equalTo(UmsRoleDynamicSqlSupport.id)) - .where(UmsAdminDynamicSqlSupport.id, isEqualTo(id)) - .build() - .render(RenderingStrategies.MYBATIS3); - return adminDao.selectWithRoleList(selectStatement); - } -} diff --git a/mall-tiny-dynamic-sql/src/main/resources/application.yml b/mall-tiny-dynamic-sql/src/main/resources/application.yml deleted file mode 100644 index 4b4e2f30..00000000 --- a/mall-tiny-dynamic-sql/src/main/resources/application.yml +++ /dev/null @@ -1,17 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:dao/*.xml - -logging: - level: - root: info - com.macro.mall: debug \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/resources/dao/UmsAdminDao.xml b/mall-tiny-dynamic-sql/src/main/resources/dao/UmsAdminDao.xml deleted file mode 100644 index a4ee0424..00000000 --- a/mall-tiny-dynamic-sql/src/main/resources/dao/UmsAdminDao.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/resources/generator.properties b/mall-tiny-dynamic-sql/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-dynamic-sql/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/main/resources/generatorConfig.xml b/mall-tiny-dynamic-sql/src/main/resources/generatorConfig.xml deleted file mode 100644 index 7eeb59b5..00000000 --- a/mall-tiny-dynamic-sql/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - -
-
-
\ No newline at end of file diff --git a/mall-tiny-dynamic-sql/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-dynamic-sql/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-dynamic-sql/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-dynamic-sql/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-dynamic-sql/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-dynamic-sql/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-easyes/.gitignore b/mall-tiny-easyes/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-easyes/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-easyes/pom.xml b/mall-tiny-easyes/pom.xml deleted file mode 100644 index 7a8bea97..00000000 --- a/mall-tiny-easyes/pom.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-easyes - 0.0.1-SNAPSHOT - mall-tiny-easyes - Demo project for Spring Boot - - - 1.8 - - - - org.springframework.boot - spring-boot-starter-parent - 2.7.0 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - org.projectlombok - lombok - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.2 - - - - com.alibaba - druid-spring-boot-starter - 1.2.9 - - - - org.mybatis.generator - mybatis-generator-core - 1.4.1 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - cn.hutool - hutool-all - 5.8.0 - - - - io.swagger - swagger-models - 1.6.0 - - - io.swagger - swagger-annotations - 1.6.0 - - - cn.easy-es - easy-es-boot-starter - 1.0.2 - - - - - - - org.elasticsearch.client - elasticsearch-rest-high-level-client - 7.14.0 - - - org.elasticsearch - elasticsearch - 7.14.0 - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index 2930c228..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - /** - * 将EasyES分页后的list转为分页信息 - */ - public static CommonPage restEasyPage(cn.easyes.core.biz.PageInfo pageInfo) { - CommonPage result = new CommonPage(); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/EasyEsConfig.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/EasyEsConfig.java deleted file mode 100644 index 1f93064b..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/EasyEsConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import cn.easyes.starter.register.EsMapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * EasyEs配置类 - * Created by macro on 2022/9/16. - */ -@Configuration -@EsMapperScan("com.macro.mall.tiny.easyes") -public class EasyEsConfig { -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index f4584332..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) -public class MyBatisConfig { -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 595bbc97..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.ReflectionUtils; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -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.spring.web.plugins.WebFluxRequestHandlerProvider; -import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - 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; - } - - @Bean - public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { - return new BeanPostProcessor() { - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { - customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); - } - return bean; - } - - private void customizeSpringfoxHandlerMappings(List mappings) { - List copy = mappings.stream() - .filter(mapping -> mapping.getPatternParser() == null) - .collect(Collectors.toList()); - mappings.clear(); - mappings.addAll(copy); - } - - @SuppressWarnings("unchecked") - private List getHandlerMappings(Object bean) { - try { - Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); - field.setAccessible(true); - return (List) field.get(bean); - } catch (IllegalArgumentException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - }; - } - -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/controller/EsProductController.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/controller/EsProductController.java deleted file mode 100644 index 1e1338e3..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/controller/EsProductController.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.macro.mall.tiny.controller; - -import cn.easyes.core.biz.PageInfo; -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.EsProductRelatedInfo; -import com.macro.mall.tiny.easyes.document.EsProduct; -import com.macro.mall.tiny.service.EsProductService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 搜索商品管理Controller - * Created by macro on 2018/6/19. - */ -@Controller -@Api(tags = "EsProductController", description = "搜索商品管理") -@RequestMapping("/esProduct") -public class EsProductController { - @Autowired - private EsProductService esProductService; - - @ApiOperation(value = "导入所有数据库中商品到ES") - @RequestMapping(value = "/importAll", method = RequestMethod.POST) - @ResponseBody - public CommonResult importAllList() { - int count = esProductService.importAll(); - return CommonResult.success(count); - } - - @ApiOperation(value = "根据id删除商品") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult delete(@PathVariable Long id) { - esProductService.delete(id); - return CommonResult.success(null); - } - - @ApiOperation(value = "根据id批量删除商品") - @RequestMapping(value = "/delete/batch", method = RequestMethod.POST) - @ResponseBody - public CommonResult delete(@RequestParam("ids") List ids) { - esProductService.delete(ids); - return CommonResult.success(null); - } - - @ApiOperation(value = "根据id创建商品") - @RequestMapping(value = "/create/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult create(@PathVariable Long id) { - EsProduct esProduct = esProductService.create(id); - if (esProduct != null) { - return CommonResult.success(esProduct); - } else { - return CommonResult.failed(); - } - } - - @ApiOperation(value = "简单搜索") - @RequestMapping(value = "/search/simple", method = RequestMethod.GET) - @ResponseBody - public CommonResult> search(@RequestParam(required = false) String keyword, - @RequestParam(required = false, defaultValue = "0") Integer pageNum, - @RequestParam(required = false, defaultValue = "5") Integer pageSize) { - PageInfo esProductPage = esProductService.search(keyword, pageNum, pageSize); - return CommonResult.success(CommonPage.restEasyPage(esProductPage)); - } - - @ApiOperation(value = "综合搜索、筛选、排序") - @ApiImplicitParam(name = "sort", value = "排序字段:0->按相关度;1->按新品;2->按销量;3->价格从低到高;4->价格从高到低", - defaultValue = "0", allowableValues = "0,1,2,3,4", paramType = "query", dataType = "integer") - @RequestMapping(value = "/search", method = RequestMethod.GET) - @ResponseBody - public CommonResult> search(@RequestParam(required = false) String keyword, - @RequestParam(required = false) Long brandId, - @RequestParam(required = false) Long productCategoryId, - @RequestParam(required = false, defaultValue = "0") Integer pageNum, - @RequestParam(required = false, defaultValue = "5") Integer pageSize, - @RequestParam(required = false, defaultValue = "0") Integer sort) { - PageInfo esProductPage = esProductService.search(keyword, brandId, productCategoryId, pageNum, pageSize, sort); - return CommonResult.success(CommonPage.restEasyPage(esProductPage)); - } - - @ApiOperation(value = "根据商品id推荐商品") - @RequestMapping(value = "/recommend/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult> recommend(@PathVariable Long id, - @RequestParam(required = false, defaultValue = "0") Integer pageNum, - @RequestParam(required = false, defaultValue = "5") Integer pageSize) { - PageInfo esProductPage = esProductService.recommend(id, pageNum, pageSize); - return CommonResult.success(CommonPage.restEasyPage(esProductPage)); - } - - @ApiOperation(value = "获取搜索的相关品牌、分类及筛选属性") - @RequestMapping(value = "/search/relate", method = RequestMethod.GET) - @ResponseBody - public CommonResult searchRelatedInfo(@RequestParam(required = false) String keyword) { - EsProductRelatedInfo productRelatedInfo = esProductService.searchRelatedInfo(keyword); - return CommonResult.success(productRelatedInfo); - } -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java deleted file mode 100644 index 61f54ab0..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.macro.mall.tiny.dao; - -import com.macro.mall.tiny.easyes.document.EsProduct; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 搜索系统中的商品管理自定义Dao - * Created by macro on 2018/6/19. - */ -public interface EsProductDao { - List getAllEsProductList(@Param("id") Long id); -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/domain/EsProductRelatedInfo.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/domain/EsProductRelatedInfo.java deleted file mode 100644 index 76aa350f..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/domain/EsProductRelatedInfo.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.List; - -/** - * 搜索商品的关联信息,包括品牌名称,分类名称及属性 - * Created by macro on 2018/6/27. - */ -@Data -@EqualsAndHashCode -public class EsProductRelatedInfo { - private List brandNames; - private List productCategoryNames; - private List productAttrs; - - @Data - @EqualsAndHashCode - public static class ProductAttr { - private Long attrId; - private String attrName; - private List attrValues; - } -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/document/EsProduct.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/document/EsProduct.java deleted file mode 100644 index 87701f5b..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/document/EsProduct.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.easyes.document; - -import cn.easyes.annotation.IndexField; -import cn.easyes.annotation.IndexId; -import cn.easyes.annotation.IndexName; -import cn.easyes.annotation.Score; -import cn.easyes.common.enums.FieldType; -import cn.easyes.common.enums.IdType; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.List; - -/** - * 搜索商品的信息 - * Created by macro on 2018/6/19. - */ -@Data -@EqualsAndHashCode -@IndexName(value = "pms", shardsNum = 1, replicasNum = 0) -public class EsProduct implements Serializable { - private static final long serialVersionUID = -1L; - @IndexId(type = IdType.CUSTOMIZE) - private Long id; - @IndexField(fieldType = FieldType.KEYWORD) - private String productSn; - private Long brandId; - @IndexField(fieldType = FieldType.KEYWORD) - private String brandName; - private Long productCategoryId; - @IndexField(fieldType = FieldType.KEYWORD) - private String productCategoryName; - private String pic; - @IndexField(fieldType = FieldType.TEXT, analyzer = "ik_max_word") - private String name; - @IndexField(fieldType = FieldType.TEXT, analyzer = "ik_max_word") - private String subTitle; - @IndexField(fieldType = FieldType.TEXT, analyzer = "ik_max_word") - private String keywords; - private BigDecimal price; - private Integer sale; - private Integer newStatus; - private Integer recommandStatus; - private Integer stock; - private Integer promotionType; - private Integer sort; - @IndexField(fieldType = FieldType.NESTED, nestedClass = EsProductAttributeValue.class) - private List attrValueList; - @Score - private Float score; -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/document/EsProductAttributeValue.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/document/EsProductAttributeValue.java deleted file mode 100644 index 0dfa67a4..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/document/EsProductAttributeValue.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.macro.mall.tiny.easyes.document; - -import cn.easyes.annotation.IndexField; -import cn.easyes.common.enums.FieldType; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serializable; - -/** - * 搜索商品的属性信息 - * Created by macro on 2018/6/27. - */ -@Data -@EqualsAndHashCode -public class EsProductAttributeValue implements Serializable { - private static final long serialVersionUID = 1L; - @IndexField(fieldType = FieldType.LONG) - private Long id; - @IndexField(fieldType = FieldType.KEYWORD) - private Long productAttributeId; - //属性值 - @IndexField(fieldType = FieldType.KEYWORD) - private String value; - //属性参数:0->规格;1->参数 - @IndexField(fieldType = FieldType.INTEGER) - private Integer type; - //属性名称 - @IndexField(fieldType=FieldType.KEYWORD) - private String name; -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/mapper/EsProductMapper.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/mapper/EsProductMapper.java deleted file mode 100644 index 78294600..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/easyes/mapper/EsProductMapper.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.macro.mall.tiny.easyes.mapper; - -import cn.easyes.core.conditions.interfaces.BaseEsMapper; -import com.macro.mall.tiny.easyes.document.EsProduct; - -/** - * 商品ES操作类 - * Created by macro on 2018/6/19. - */ -public interface EsProductMapper extends BaseEsMapper { - -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/service/EsProductService.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/service/EsProductService.java deleted file mode 100644 index 4e7f06dc..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/service/EsProductService.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service; - -import cn.easyes.core.biz.PageInfo; -import com.macro.mall.tiny.domain.EsProductRelatedInfo; -import com.macro.mall.tiny.easyes.document.EsProduct; - -import java.util.List; - -/** - * 商品搜索管理Service - * Created by macro on 2018/6/19. - */ -public interface EsProductService { - /** - * 从数据库中导入所有商品到ES - */ - int importAll(); - - /** - * 根据id删除商品 - */ - void delete(Long id); - - /** - * 根据id创建商品 - */ - EsProduct create(Long id); - - /** - * 批量删除商品 - */ - void delete(List ids); - - /** - * 根据关键字搜索名称或者副标题 - */ - PageInfo search(String keyword, Integer pageNum, Integer pageSize); - - /** - * 根据关键字搜索名称或者副标题复合查询 - */ - PageInfo search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize,Integer sort); - - /** - * 根据商品id推荐相关商品 - */ - PageInfo recommend(Long id, Integer pageNum, Integer pageSize); - - /** - * 获取搜索词相关品牌、分类、属性 - */ - EsProductRelatedInfo searchRelatedInfo(String keyword); -} diff --git a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java b/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java deleted file mode 100644 index b483c4de..00000000 --- a/mall-tiny-easyes/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java +++ /dev/null @@ -1,228 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.easyes.core.biz.PageInfo; -import cn.easyes.core.conditions.LambdaEsQueryWrapper; -import cn.hutool.core.util.StrUtil; -import com.macro.mall.tiny.dao.EsProductDao; -import com.macro.mall.tiny.domain.EsProductRelatedInfo; -import com.macro.mall.tiny.easyes.document.EsProduct; -import com.macro.mall.tiny.easyes.mapper.EsProductMapper; -import com.macro.mall.tiny.service.EsProductService; -import org.elasticsearch.action.search.SearchRequest; -import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.client.RequestOptions; -import org.elasticsearch.index.query.QueryBuilders; -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.ParsedFilter; -import org.elasticsearch.search.aggregations.bucket.nested.NestedAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.nested.ParsedNested; -import org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms; -import org.elasticsearch.search.aggregations.bucket.terms.Terms; -import org.elasticsearch.search.builder.SearchSourceBuilder; -import org.elasticsearch.search.sort.SortOrder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - - -/** - * 搜索商品管理Service实现类 - * Created by macro on 2018/6/19. - */ -@Service -public class EsProductServiceImpl implements EsProductService { - private static final Logger LOGGER = LoggerFactory.getLogger(EsProductServiceImpl.class); - @Autowired - private EsProductDao productDao; - @Autowired - private EsProductMapper esProductMapper; - @Override - public int importAll() { - List esProductList = productDao.getAllEsProductList(null); - return esProductMapper.insertBatch(esProductList); - } - - @Override - public void delete(Long id) { - esProductMapper.deleteById(id); - } - - @Override - public EsProduct create(Long id) { - EsProduct result = null; - List esProductList = productDao.getAllEsProductList(id); - if (esProductList.size() > 0) { - result = esProductList.get(0); - esProductMapper.insert(result); - } - return result; - } - - @Override - public void delete(List ids) { - if (!CollectionUtils.isEmpty(ids)) { - esProductMapper.deleteBatchIds(ids); - } - } - - @Override - public PageInfo search(String keyword, Integer pageNum, Integer pageSize) { - LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); - if(StrUtil.isEmpty(keyword)){ - wrapper.matchAllQuery(); - }else{ - wrapper.multiMatchQuery(keyword,EsProduct::getName,EsProduct::getSubTitle,EsProduct::getKeywords); - } - return esProductMapper.pageQuery(wrapper, pageNum, pageSize); - } - - @Override - public PageInfo search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize,Integer sort) { - LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); - //过滤 - if (brandId != null || productCategoryId != null) { - if (brandId != null) { - wrapper.eq(EsProduct::getBrandId,brandId); - } - if (productCategoryId != null) { - wrapper.eq(EsProduct::getProductCategoryId,productCategoryId).enableMust2Filter(true); - } - } - //搜索 - if (StrUtil.isEmpty(keyword)) { - wrapper.matchAllQuery(); - } else { - wrapper.and(i -> i.match(EsProduct::getName, keyword, 10f) - .or().match(EsProduct::getSubTitle, keyword, 5f) - .or().match(EsProduct::getKeywords, keyword, 2f)); - } - //排序 - if(sort==1){ - //按新品从新到旧 - wrapper.orderByDesc(EsProduct::getId); - }else if(sort==2){ - //按销量从高到低 - wrapper.orderByDesc(EsProduct::getSale); - }else if(sort==3){ - //按价格从低到高 - wrapper.orderByAsc(EsProduct::getPrice); - }else if(sort==4){ - //按价格从高到低 - wrapper.orderByDesc(EsProduct::getPrice); - }else{ - //按相关度 - wrapper.sortByScore(SortOrder.DESC); - } - return esProductMapper.pageQuery(wrapper, pageNum, pageSize); - } - - @Override - public PageInfo recommend(Long id, Integer pageNum, Integer pageSize) { - LambdaEsQueryWrapper wrapper = new LambdaEsQueryWrapper<>(); - List esProductList = productDao.getAllEsProductList(id); - if (esProductList.size() > 0) { - EsProduct esProduct = esProductList.get(0); - String keyword = esProduct.getName(); - Long brandId = esProduct.getBrandId(); - Long productCategoryId = esProduct.getProductCategoryId(); - //用于过滤掉相同的商品 - wrapper.ne(EsProduct::getId,id); - //根据商品标题、品牌、分类进行搜索 - wrapper.and(i -> i.match(EsProduct::getName, keyword, 8f) - .or().match(EsProduct::getSubTitle, keyword, 2f) - .or().match(EsProduct::getKeywords, keyword, 2f) - .or().match(EsProduct::getBrandId, brandId, 5f) - .or().match(EsProduct::getProductCategoryId, productCategoryId, 3f)); - return esProductMapper.pageQuery(wrapper, pageNum, pageSize); - } - return esProductMapper.pageQuery(wrapper, pageNum, pageSize); - } - - @Override - public EsProductRelatedInfo searchRelatedInfo(String keyword) { - SearchRequest searchRequest = new SearchRequest(); - searchRequest.indices("pms_*"); - SearchSourceBuilder builder = new SearchSourceBuilder(); - //搜索条件 - if (StrUtil.isEmpty(keyword)) { - builder.query(QueryBuilders.matchAllQuery()); - } else { - builder.query(QueryBuilders.multiMatchQuery(keyword, "name", "subTitle", "keywords")); - } - //聚合搜索品牌名称 - builder.aggregation(AggregationBuilders.terms("brandNames").field("brandName")); - //集合搜索分类名称 - builder.aggregation(AggregationBuilders.terms("productCategoryNames").field("productCategoryName")); - //聚合搜索商品属性,去除type=1的属性 - AbstractAggregationBuilder aggregationBuilder = AggregationBuilders.nested("allAttrValues", "attrValueList") - .subAggregation(AggregationBuilders.filter("productAttrs", QueryBuilders.termQuery("attrValueList.type", 1)) - .subAggregation(AggregationBuilders.terms("attrIds") - .field("attrValueList.productAttributeId") - .subAggregation(AggregationBuilders.terms("attrValues") - .field("attrValueList.value")) - .subAggregation(AggregationBuilders.terms("attrNames") - .field("attrValueList.name")))); - builder.aggregation(aggregationBuilder); - searchRequest.source(builder); - try { - SearchResponse searchResponse = esProductMapper.search(searchRequest, RequestOptions.DEFAULT); - return convertProductRelatedInfo(searchResponse); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 将返回结果转换为对象 - */ - private EsProductRelatedInfo convertProductRelatedInfo(SearchResponse response) { - EsProductRelatedInfo productRelatedInfo = new EsProductRelatedInfo(); - Map aggregationMap = response.getAggregations().asMap(); - //设置品牌 - Aggregation brandNames = aggregationMap.get("brandNames"); - List brandNameList = new ArrayList<>(); - for(int i = 0; i<((Terms) brandNames).getBuckets().size(); i++){ - brandNameList.add(((Terms) brandNames).getBuckets().get(i).getKeyAsString()); - } - productRelatedInfo.setBrandNames(brandNameList); - //设置分类 - Aggregation productCategoryNames = aggregationMap.get("productCategoryNames"); - List productCategoryNameList = new ArrayList<>(); - for(int i=0;i<((Terms) productCategoryNames).getBuckets().size();i++){ - productCategoryNameList.add(((Terms) productCategoryNames).getBuckets().get(i).getKeyAsString()); - } - productRelatedInfo.setProductCategoryNames(productCategoryNameList); - //设置参数 - Aggregation productAttrs = aggregationMap.get("allAttrValues"); - List attrIds = ((ParsedStringTerms) ((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.parseLong((String) attrId.getKey())); - List attrValueList = new ArrayList<>(); - 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()); - } - attr.setAttrValues(attrValueList); - if(!CollectionUtils.isEmpty(attrNames)){ - String attrName = attrNames.get(0).getKeyAsString(); - attr.setAttrName(attrName); - } - attrList.add(attr); - } - productRelatedInfo.setProductAttrs(attrList); - return productRelatedInfo; - } -} diff --git a/mall-tiny-easyes/src/main/resources/application.yml b/mall-tiny-easyes/src/main/resources/application.yml deleted file mode 100644 index 07c29e82..00000000 --- a/mall-tiny-easyes/src/main/resources/application.yml +++ /dev/null @@ -1,29 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - mvc: - pathmatch: - matching-strategy: ANT_PATH_MATCHER - -springfox: - documentation: - enabled: true - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - - -easy-es: - # 是否开启EE自动配置 - enable: true - # ES连接地址+端口 - address: localhost:9200 - # 关闭自带banner - banner: false diff --git a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-easyes/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/generator.properties b/mall-tiny-easyes/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-easyes/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/generatorConfig.xml b/mall-tiny-easyes/src/main/resources/generatorConfig.xml deleted file mode 100644 index 28f1a8d3..00000000 --- a/mall-tiny-easyes/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - -
- - -
- - -
-
-
\ No newline at end of file diff --git a/mall-tiny-easyes/src/main/resources/mapper/EsProductDao.xml b/mall-tiny-easyes/src/main/resources/mapper/EsProductDao.xml deleted file mode 100644 index 2fbaedc8..00000000 --- a/mall-tiny-easyes/src/main/resources/mapper/EsProductDao.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mall-tiny-easyes/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-easyes/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index 56fd1fa2..00000000 --- a/mall-tiny-easyes/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.macro.mall.tiny; - -import com.macro.mall.tiny.dao.EsProductDao; -import com.macro.mall.tiny.easyes.document.EsProduct; -import com.macro.mall.tiny.easyes.mapper.EsProductMapper; -import org.elasticsearch.cluster.metadata.MappingMetadata; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import java.util.List; -import java.util.Map; - -@SpringBootTest -public class MallTinyApplicationTests { - - @Autowired - private EsProductDao productDao; - @Autowired - private EsProductMapper esProductMapper; - @Test - public void contextLoads() { - } - @Test - public void testGetAllEsProductList(){ - List esProductList = productDao.getAllEsProductList(null); - System.out.print(esProductList); - } - @Test - public void testEsProductMapping(){ - Map mappings = esProductMapper.getIndex().getMappings(); - System.out.println(mappings); - } - -} diff --git a/mall-tiny-easyexcel/.gitignore b/mall-tiny-easyexcel/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-easyexcel/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-easyexcel/pom.xml b/mall-tiny-easyexcel/pom.xml deleted file mode 100644 index 2a8d3a61..00000000 --- a/mall-tiny-easyexcel/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-easyexcel - 1.0-SNAPSHOT - mall-tiny-easyexcel - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - com.alibaba - easyexcel - 3.0.5 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/anno/CustomMerge.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/anno/CustomMerge.java deleted file mode 100644 index 5e4ce585..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/anno/CustomMerge.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.anno; - -import java.lang.annotation.*; - -/** - * 自定义注解,用于判断是否需要合并以及合并的主键 - */ -@Target({ElementType.FIELD}) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -public @interface CustomMerge { - - /** - * 是否需要合并单元格 - */ - boolean needMerge() default false; - - /** - * 是否是主键,即该字段相同的行合并 - */ - boolean isPk() default false; -} - diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index f47bcaf6..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.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.Contact; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/controller/EasyExcelController.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/controller/EasyExcelController.java deleted file mode 100644 index bb981826..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/controller/EasyExcelController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.macro.mall.tiny.controller; - -import cn.hutool.core.bean.BeanUtil; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.support.ExcelTypeEnum; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.Member; -import com.macro.mall.tiny.domain.Order; -import com.macro.mall.tiny.domain.OrderData; -import com.macro.mall.tiny.domain.Product; -import com.macro.mall.tiny.strategy.CustomMergeStrategy; -import com.macro.mall.tiny.util.LocalJsonUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.SneakyThrows; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.List; - -/** - * EasyExcel导入导出测试Controller - * Created by macro on 2021/10/12. - */ -@Controller -@Api(tags = "EasyExcelController", description = "EasyExcel导入导出测试") -@RequestMapping("/easyExcel") -public class EasyExcelController { - - @SneakyThrows(IOException.class) - @ApiOperation(value = "导出会员列表Excel") - @RequestMapping(value = "/exportMemberList", method = RequestMethod.GET) - public void exportMemberList(HttpServletResponse response) { - setExcelRespProp(response, "会员列表"); - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - EasyExcel.write(response.getOutputStream()) - .head(Member.class) - .excelType(ExcelTypeEnum.XLSX) - .sheet("会员列表") - .doWrite(memberList); - } - - @SneakyThrows - @ApiOperation("从Excel导入会员列表") - @RequestMapping(value = "/importMemberList", method = RequestMethod.POST) - @ResponseBody - public CommonResult importMemberList(@RequestPart("file") MultipartFile file) { - List memberList = EasyExcel.read(file.getInputStream()) - .head(Member.class) - .sheet() - .doReadSync(); - return CommonResult.success(memberList); - } - - @SneakyThrows - @ApiOperation(value = "导出订单列表Excel") - @RequestMapping(value = "/exportOrderList", method = RequestMethod.GET) - public void exportOrderList(HttpServletResponse response) { - List orderList = getOrderList(); - List orderDataList = convert(orderList); - setExcelRespProp(response, "订单列表"); - EasyExcel.write(response.getOutputStream()) - .head(OrderData.class) - .registerWriteHandler(new CustomMergeStrategy(OrderData.class)) - .excelType(ExcelTypeEnum.XLSX) - .sheet("订单列表") - .doWrite(orderDataList); - } - - /** - * 设置excel下载响应头属性 - */ - private void setExcelRespProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException { - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setCharacterEncoding("utf-8"); - String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20"); - response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); - } - - private List convert(List orderList) { - List result = new ArrayList<>(); - for (Order order : orderList) { - List productList = order.getProductList(); - for (Product product : productList) { - OrderData orderData = new OrderData(); - BeanUtil.copyProperties(product,orderData); - BeanUtil.copyProperties(order,orderData); - result.add(orderData); - } - } - return result; - } - - private List getOrderList() { - List orderList = LocalJsonUtil.getListFromJson("json/orders.json", Order.class); - List productList = LocalJsonUtil.getListFromJson("json/products.json", Product.class); - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - for (int i = 0; i < orderList.size(); i++) { - Order order = orderList.get(i); - order.setMember(memberList.get(i)); - order.setProductList(productList); - } - return orderList; - } -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/converter/GenderConverter.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/converter/GenderConverter.java deleted file mode 100644 index 582c6631..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/converter/GenderConverter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.converter; - -import cn.hutool.core.util.StrUtil; -import com.alibaba.excel.converters.Converter; -import com.alibaba.excel.converters.ReadConverterContext; -import com.alibaba.excel.converters.WriteConverterContext; -import com.alibaba.excel.enums.CellDataTypeEnum; -import com.alibaba.excel.metadata.data.WriteCellData; - -/** - * excel性别转换器 - * Created by macro on 2021/12/29. - */ -public class GenderConverter implements Converter { - @Override - public Class supportJavaTypeKey() { - //对象属性类型 - return Integer.class; - } - - @Override - public CellDataTypeEnum supportExcelTypeKey() { - //CellData属性类型 - return CellDataTypeEnum.STRING; - } - - @Override - public Integer convertToJavaData(ReadConverterContext context) throws Exception { - //CellData转对象属性 - String cellStr = context.getReadCellData().getStringValue(); - if (StrUtil.isEmpty(cellStr)) return null; - if ("男".equals(cellStr)) { - return 0; - } else if ("女".equals(cellStr)) { - return 1; - } else { - return null; - } - } - - @Override - public WriteCellData convertToExcelData(WriteConverterContext context) throws Exception { - //对象属性转CellData - Integer cellValue = context.getValue(); - if (cellValue == null) { - return new WriteCellData<>(""); - } - if (cellValue == 0) { - return new WriteCellData<>("男"); - } else if (cellValue == 1) { - return new WriteCellData<>("女"); - } else { - return new WriteCellData<>(""); - } - } -} - diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Member.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Member.java deleted file mode 100644 index d6afd052..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Member.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.domain; - -import com.alibaba.excel.annotation.ExcelIgnore; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.format.DateTimeFormat; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.macro.mall.tiny.converter.GenderConverter; -import lombok.*; - -import java.util.Date; - -/** - * 购物会员 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Member { - @ExcelProperty("ID") - @ColumnWidth(10) - private Long id; - @ExcelProperty("用户名") - @ColumnWidth(20) - private String username; - @ExcelIgnore - private String password; - @ExcelProperty("昵称") - @ColumnWidth(20) - private String nickname; - @ExcelProperty("出生日期") - @ColumnWidth(20) - @DateTimeFormat("yyyy-MM-dd") - private Date birthday; - @ExcelProperty("手机号") - @ColumnWidth(20) - private String phone; - @ExcelIgnore - private String icon; - @ExcelProperty(value = "性别", converter = GenderConverter.class) - @ColumnWidth(10) - private Integer gender; -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Order.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Order.java deleted file mode 100644 index d63c681b..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Order.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; -import java.util.List; - -/** - * 订单 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Order { - private Long id; - private String orderSn; - private Date createTime; - private String receiverAddress; - private Member member; - private List productList; -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/OrderData.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/OrderData.java deleted file mode 100644 index 66652985..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/OrderData.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.macro.mall.tiny.domain; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.format.DateTimeFormat; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.macro.mall.tiny.anno.CustomMerge; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.math.BigDecimal; -import java.util.Date; - -/** - * 订单导出 - * Created by macro on 2021/12/30. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class OrderData { - @ExcelProperty(value = "订单ID") - @ColumnWidth(10) - @CustomMerge(needMerge = true, isPk = true) - private String id; - @ExcelProperty(value = "订单编码") - @ColumnWidth(20) - @CustomMerge(needMerge = true) - private String orderSn; - @ExcelProperty(value = "创建时间") - @ColumnWidth(20) - @DateTimeFormat("yyyy-MM-dd") - @CustomMerge(needMerge = true) - private Date createTime; - @ExcelProperty(value = "收货地址") - @CustomMerge(needMerge = true) - @ColumnWidth(20) - private String receiverAddress; - @ExcelProperty(value = {"商品信息", "商品编码"}) - @ColumnWidth(20) - private String productSn; - @ExcelProperty(value = {"商品信息", "商品名称"}) - @ColumnWidth(20) - private String name; - @ExcelProperty(value = {"商品信息", "商品标题"}) - @ColumnWidth(30) - private String subTitle; - @ExcelProperty(value = {"商品信息", "品牌名称"}) - @ColumnWidth(20) - private String brandName; - @ExcelProperty(value = {"商品信息", "商品价格"}) - @ColumnWidth(20) - private BigDecimal price; - @ExcelProperty(value = {"商品信息", "商品数量"}) - @ColumnWidth(20) - private Integer count; -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Product.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Product.java deleted file mode 100644 index ad7b928c..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/domain/Product.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.math.BigDecimal; - -/** - * 商品 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Product { - private Long id; - private String productSn; - private String name; - private String subTitle; - private String brandName; - private BigDecimal price; - private Integer count; -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/strategy/CustomMergeStrategy.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/strategy/CustomMergeStrategy.java deleted file mode 100644 index 4bdadb6b..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/strategy/CustomMergeStrategy.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.macro.mall.tiny.strategy; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.write.handler.RowWriteHandler; -import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; -import com.alibaba.excel.write.metadata.holder.WriteTableHolder; -import com.macro.mall.tiny.anno.CustomMerge; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.util.CellRangeAddress; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -/** - * 自定义单元格合并策略 - */ -public class CustomMergeStrategy implements RowWriteHandler { - /** - * 主键下标 - */ - private Integer pkIndex; - - /** - * 需要合并的列的下标集合 - */ - private List needMergeColumnIndex = new ArrayList<>(); - - /** - * DTO数据类型 - */ - private Class elementType; - - public CustomMergeStrategy(Class elementType) { - this.elementType = elementType; - } - - @Override - public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer relativeRowIndex, Boolean isHead) { - // 如果是标题,则直接返回 - if (isHead) { - return; - } - - // 获取当前sheet - Sheet sheet = writeSheetHolder.getSheet(); - - // 获取标题行 - Row titleRow = sheet.getRow(0); - - if (null == pkIndex) { - this.lazyInit(writeSheetHolder); - } - - // 判断是否需要和上一行进行合并 - // 不能和标题合并,只能数据行之间合并 - if (row.getRowNum() <= 1) { - return; - } - // 获取上一行数据 - Row lastRow = sheet.getRow(row.getRowNum() - 1); - // 将本行和上一行是同一类型的数据(通过主键字段进行判断),则需要合并 - if (lastRow.getCell(pkIndex).getStringCellValue().equalsIgnoreCase(row.getCell(pkIndex).getStringCellValue())) { - for (Integer needMerIndex : needMergeColumnIndex) { - CellRangeAddress cellRangeAddress = new CellRangeAddress(row.getRowNum() - 1, row.getRowNum(), - needMerIndex, needMerIndex); - sheet.addMergedRegionUnsafe(cellRangeAddress); - } - } - } - - /** - * 初始化主键下标和需要合并字段的下标 - */ - private void lazyInit(WriteSheetHolder writeSheetHolder) { - - // 获取当前sheet - Sheet sheet = writeSheetHolder.getSheet(); - - // 获取标题行 - Row titleRow = sheet.getRow(0); - // 获取DTO的类型 - Class eleType = this.elementType; - - // 获取DTO所有的属性 - Field[] fields = eleType.getDeclaredFields(); - - // 遍历所有的字段,因为是基于DTO的字段来构建excel,所以字段数 >= excel的列数 - for (Field theField : fields) { - // 获取@ExcelProperty注解,用于获取该字段对应在excel中的列的下标 - ExcelProperty easyExcelAnno = theField.getAnnotation(ExcelProperty.class); - // 为空,则表示该字段不需要导入到excel,直接处理下一个字段 - if (null == easyExcelAnno) { - continue; - } - // 获取自定义的注解,用于合并单元格 - CustomMerge customMerge = theField.getAnnotation(CustomMerge.class); - - // 没有@CustomMerge注解的默认不合并 - if (null == customMerge) { - continue; - } - - for (int index = 0; index < fields.length; index++) { - Cell theCell = titleRow.getCell(index); - // 当配置为不需要导出时,返回的为null,这里作一下判断,防止NPE - if (null == theCell) { - continue; - } - // 将字段和excel的表头匹配上 - if (easyExcelAnno.value()[0].equalsIgnoreCase(theCell.getStringCellValue())) { - if (customMerge.isPk()) { - pkIndex = index; - } - - if (customMerge.needMerge()) { - needMergeColumnIndex.add(index); - } - } - } - } - - // 没有指定主键,则异常 - if (null == this.pkIndex) { - throw new IllegalStateException("使用@CustomMerge注解必须指定主键"); - } - - } -} diff --git a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java b/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java deleted file mode 100644 index 4e016cae..00000000 --- a/mall-tiny-easyexcel/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.util; - -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.io.resource.ClassPathResource; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONUtil; - -import java.nio.charset.Charset; -import java.util.List; - -/** - * 从本地获取JSON数据的工具类 - * Created by macro on 2021/10/16. - */ -public class LocalJsonUtil { - - /** - * 从指定路径获取JSON并转换为List - * @param path json文件路径 - * @param elementType List元素类型 - */ - public static List getListFromJson(String path, Class elementType) { - ClassPathResource resource = new ClassPathResource(path); - String jsonStr = IoUtil.read(resource.getStream(), Charset.forName("UTF-8")); - JSONArray jsonArray = new JSONArray(jsonStr); - return JSONUtil.toList(jsonArray, elementType); - } -} diff --git a/mall-tiny-easyexcel/src/main/resources/application.yml b/mall-tiny-easyexcel/src/main/resources/application.yml deleted file mode 100644 index 395b50e4..00000000 --- a/mall-tiny-easyexcel/src/main/resources/application.yml +++ /dev/null @@ -1,7 +0,0 @@ -server: - port: 8088 - -springfox: - documentation: - enabled: true - diff --git a/mall-tiny-easyexcel/src/main/resources/json/members.json b/mall-tiny-easyexcel/src/main/resources/json/members.json deleted file mode 100644 index e47c7ed7..00000000 --- a/mall-tiny-easyexcel/src/main/resources/json/members.json +++ /dev/null @@ -1,52 +0,0 @@ -[ - { - "id": 1, - "username": "admin", - "password": null, - "nickname": "Admin", - "birthday": "1994-12-31", - "phone": "18790000000", - "icon": null, - "gender": 0 - }, - { - "id": 2, - "username": "macro", - "password": null, - "nickname": "Macro", - "birthday": "1995-01-31", - "phone": "18791000000", - "icon": null, - "gender": 0 - }, - { - "id": 3, - "username": "andy", - "password": null, - "nickname": "Andy", - "birthday": "1995-02-28", - "phone": "18792000000", - "icon": null, - "gender": 1 - }, - { - "id": 4, - "username": "ruby", - "password": null, - "nickname": "Ruby", - "birthday": "1995-03-31", - "phone": "18793000000", - "icon": null, - "gender": 1 - }, - { - "id": 5, - "username": "tom", - "password": null, - "nickname": "", - "birthday": "1995-03-31", - "phone": "18793000000", - "icon": null, - "gender": 1 - } -] \ No newline at end of file diff --git a/mall-tiny-easyexcel/src/main/resources/json/orders.json b/mall-tiny-easyexcel/src/main/resources/json/orders.json deleted file mode 100644 index dc2c34fc..00000000 --- a/mall-tiny-easyexcel/src/main/resources/json/orders.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "id": 1, - "orderSn": "201809150101000001", - "createTime": "2021-10-10 17:02:28", - "receiverAddress": "广东省深圳市" - }, - { - "id": 2, - "orderSn": "201809150101000002", - "createTime": "2021-10-11 17:02:28", - "receiverAddress": "江苏省南京市" - }, - { - "id": 3, - "orderSn": "201809150101000003", - "createTime": "2021-10-12 17:02:28", - "receiverAddress": "江苏省苏州市" - } -] \ No newline at end of file diff --git a/mall-tiny-easyexcel/src/main/resources/json/products.json b/mall-tiny-easyexcel/src/main/resources/json/products.json deleted file mode 100644 index 90a40ea0..00000000 --- a/mall-tiny-easyexcel/src/main/resources/json/products.json +++ /dev/null @@ -1,29 +0,0 @@ -[ - { - "id": 1, - "productSn": "7437788", - "name": "小米8", - "subTitle": "全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待", - "brandName": "小米", - "price": 2699, - "count": 1 - }, - { - "id": 2, - "productSn": "7437789", - "name": "红米5A", - "subTitle": "全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待", - "brandName": "小米", - "price": 649, - "count": 1 - }, - { - "id": 3, - "productSn": "7437799", - "name": "Apple iPhone 8 Plus", - "subTitle": "64GB 红色特别版 移动联通电信4G手机", - "brandName": "苹果", - "price": 5499, - "count": 1 - } -] \ No newline at end of file diff --git a/mall-tiny-easyexcel/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-easyexcel/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-easyexcel/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-easyexcel/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-easyexcel/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-easyexcel/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-easypoi/.gitignore b/mall-tiny-easypoi/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-easypoi/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-easypoi/pom.xml b/mall-tiny-easypoi/pom.xml deleted file mode 100644 index d525ef54..00000000 --- a/mall-tiny-easypoi/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-easypoi - 1.0-SNAPSHOT - mall-tiny-easypoi - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - cn.afterturn - easypoi-spring-boot-starter - 4.4.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index f47bcaf6..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.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.Contact; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/controller/EasyPoiController.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/controller/EasyPoiController.java deleted file mode 100644 index 3d591e76..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/controller/EasyPoiController.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.macro.mall.tiny.controller; - -import cn.afterturn.easypoi.entity.vo.NormalExcelConstants; -import cn.afterturn.easypoi.excel.ExcelImportUtil; -import cn.afterturn.easypoi.excel.entity.ExportParams; -import cn.afterturn.easypoi.excel.entity.ImportParams; -import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; -import cn.afterturn.easypoi.view.PoiBaseView; -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.io.resource.ClassPathResource; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.Member; -import com.macro.mall.tiny.domain.Order; -import com.macro.mall.tiny.domain.Product; -import com.macro.mall.tiny.handler.MemberExcelDataHandler; -import com.macro.mall.tiny.util.LocalJsonUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.nio.charset.Charset; -import java.util.List; - -/** - * EasyPoi导入导出测试Controller - * Created by macro on 2021/10/12. - */ -@Controller -@Api(tags = "EasyPoiController", description = "EasyPoi导入导出测试") -@RequestMapping("/easyPoi") -public class EasyPoiController { - - @ApiOperation(value = "导出会员列表Excel") - @RequestMapping(value = "/exportMemberList", method = RequestMethod.GET) - public void exportMemberList(ModelMap map, - HttpServletRequest request, - HttpServletResponse response) { - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - ExportParams params = new ExportParams("会员列表", "会员列表", ExcelType.XSSF); - //对导出结果进行自定义处理 - MemberExcelDataHandler handler = new MemberExcelDataHandler(); - handler.setNeedHandlerFields(new String[]{"昵称"}); - params.setDataHandler(handler); - map.put(NormalExcelConstants.DATA_LIST, memberList); - map.put(NormalExcelConstants.CLASS, Member.class); - map.put(NormalExcelConstants.PARAMS, params); - map.put(NormalExcelConstants.FILE_NAME, "memberList"); - PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW); - } - - @ApiOperation("从Excel导入会员列表") - @RequestMapping(value = "/importMemberList", method = RequestMethod.POST) - @ResponseBody - public CommonResult importMemberList(@RequestPart("file") MultipartFile file) { - ImportParams params = new ImportParams(); - params.setTitleRows(1); - params.setHeadRows(1); - try { - List list = ExcelImportUtil.importExcel( - file.getInputStream(), - Member.class, params); - return CommonResult.success(list); - } catch (Exception e) { - e.printStackTrace(); - return CommonResult.failed("导入失败!"); - } - } - - @ApiOperation(value = "导出订单列表Excel") - @RequestMapping(value = "/exportOrderList", method = RequestMethod.GET) - public void exportOrderList(ModelMap map, - HttpServletRequest request, - HttpServletResponse response) { - List orderList = getOrderList(); - ExportParams params = new ExportParams("订单列表", "订单列表", ExcelType.XSSF); - //导出时排除一些字段 - params.setExclusions(new String[]{"ID", "出生日期", "性别"}); - map.put(NormalExcelConstants.DATA_LIST, orderList); - map.put(NormalExcelConstants.CLASS, Order.class); - map.put(NormalExcelConstants.PARAMS, params); - map.put(NormalExcelConstants.FILE_NAME, "orderList"); - PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW); - } - - private List getOrderList() { - List orderList = LocalJsonUtil.getListFromJson("json/orders.json", Order.class); - List productList = LocalJsonUtil.getListFromJson("json/products.json", Product.class); - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - for (int i = 0; i < orderList.size(); i++) { - Order order = orderList.get(i); - order.setMember(memberList.get(i)); - order.setProductList(productList); - } - return orderList; - } -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Member.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Member.java deleted file mode 100644 index d2f96fa9..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Member.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.domain; - -import cn.afterturn.easypoi.excel.annotation.Excel; -import lombok.*; - -import java.util.Date; - -/** - * 购物会员 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Member { - @Excel(name = "ID", width = 10) - private Long id; - @Excel(name = "用户名", width = 20, needMerge = true) - private String username; - private String password; - @Excel(name = "昵称", width = 20, needMerge = true) - private String nickname; - @Excel(name = "出生日期", width = 20, format = "yyyy-MM-dd") - private Date birthday; - @Excel(name = "手机号", width = 20, needMerge = true, desensitizationRule = "3_4") - private String phone; - private String icon; - @Excel(name = "性别", width = 10, replace = {"男_0", "女_1"}) - private Integer gender; -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Order.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Order.java deleted file mode 100644 index 14e9c18f..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Order.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.macro.mall.tiny.domain; - -import cn.afterturn.easypoi.excel.annotation.Excel; -import cn.afterturn.easypoi.excel.annotation.ExcelCollection; -import cn.afterturn.easypoi.excel.annotation.ExcelEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; -import java.util.List; - -/** - * 订单 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Order { - @Excel(name = "ID", width = 10,needMerge = true) - private Long id; - @Excel(name = "订单号", width = 20,needMerge = true) - private String orderSn; - @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss",needMerge = true) - private Date createTime; - @Excel(name = "收货地址", width = 20,needMerge = true ) - private String receiverAddress; - @ExcelEntity(name = "会员信息") - private Member member; - @ExcelCollection(name = "商品列表") - private List productList; -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Product.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Product.java deleted file mode 100644 index f3e98fa0..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/domain/Product.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.domain; - -import cn.afterturn.easypoi.excel.annotation.Excel; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.math.BigDecimal; - -/** - * 商品 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Product { - @Excel(name = "ID", width = 10) - private Long id; - @Excel(name = "商品SN", width = 20) - private String productSn; - @Excel(name = "商品名称", width = 20) - private String name; - @Excel(name = "商品副标题", width = 30) - private String subTitle; - @Excel(name = "品牌名称", width = 20) - private String brandName; - @Excel(name = "商品价格", width = 10) - private BigDecimal price; - @Excel(name = "购买数量", width = 10, suffix = "件") - private Integer count; -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/handler/MemberExcelDataHandler.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/handler/MemberExcelDataHandler.java deleted file mode 100644 index 6152986b..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/handler/MemberExcelDataHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.macro.mall.tiny.handler; - -import cn.afterturn.easypoi.handler.impl.ExcelDataHandlerDefaultImpl; -import cn.hutool.core.util.StrUtil; -import com.macro.mall.tiny.domain.Member; - -/** - * 自定义字段处理 - * Created by macro on 2021/10/13. - */ -public class MemberExcelDataHandler extends ExcelDataHandlerDefaultImpl { - - @Override - public Object exportHandler(Member obj, String name, Object value) { - if("昵称".equals(name)){ - String emptyValue = "暂未设置"; - if(value==null){ - return super.exportHandler(obj,name,emptyValue); - } - if(value instanceof String&&StrUtil.isBlank((String) value)){ - return super.exportHandler(obj,name,emptyValue); - } - } - return super.exportHandler(obj, name, value); - } - - @Override - public Object importHandler(Member obj, String name, Object value) { - return super.importHandler(obj, name, value); - } -} diff --git a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java b/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java deleted file mode 100644 index 4e016cae..00000000 --- a/mall-tiny-easypoi/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.util; - -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.io.resource.ClassPathResource; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONUtil; - -import java.nio.charset.Charset; -import java.util.List; - -/** - * 从本地获取JSON数据的工具类 - * Created by macro on 2021/10/16. - */ -public class LocalJsonUtil { - - /** - * 从指定路径获取JSON并转换为List - * @param path json文件路径 - * @param elementType List元素类型 - */ - public static List getListFromJson(String path, Class elementType) { - ClassPathResource resource = new ClassPathResource(path); - String jsonStr = IoUtil.read(resource.getStream(), Charset.forName("UTF-8")); - JSONArray jsonArray = new JSONArray(jsonStr); - return JSONUtil.toList(jsonArray, elementType); - } -} diff --git a/mall-tiny-easypoi/src/main/resources/application.yml b/mall-tiny-easypoi/src/main/resources/application.yml deleted file mode 100644 index 395b50e4..00000000 --- a/mall-tiny-easypoi/src/main/resources/application.yml +++ /dev/null @@ -1,7 +0,0 @@ -server: - port: 8088 - -springfox: - documentation: - enabled: true - diff --git a/mall-tiny-easypoi/src/main/resources/json/members.json b/mall-tiny-easypoi/src/main/resources/json/members.json deleted file mode 100644 index e47c7ed7..00000000 --- a/mall-tiny-easypoi/src/main/resources/json/members.json +++ /dev/null @@ -1,52 +0,0 @@ -[ - { - "id": 1, - "username": "admin", - "password": null, - "nickname": "Admin", - "birthday": "1994-12-31", - "phone": "18790000000", - "icon": null, - "gender": 0 - }, - { - "id": 2, - "username": "macro", - "password": null, - "nickname": "Macro", - "birthday": "1995-01-31", - "phone": "18791000000", - "icon": null, - "gender": 0 - }, - { - "id": 3, - "username": "andy", - "password": null, - "nickname": "Andy", - "birthday": "1995-02-28", - "phone": "18792000000", - "icon": null, - "gender": 1 - }, - { - "id": 4, - "username": "ruby", - "password": null, - "nickname": "Ruby", - "birthday": "1995-03-31", - "phone": "18793000000", - "icon": null, - "gender": 1 - }, - { - "id": 5, - "username": "tom", - "password": null, - "nickname": "", - "birthday": "1995-03-31", - "phone": "18793000000", - "icon": null, - "gender": 1 - } -] \ No newline at end of file diff --git a/mall-tiny-easypoi/src/main/resources/json/orders.json b/mall-tiny-easypoi/src/main/resources/json/orders.json deleted file mode 100644 index af5e87bf..00000000 --- a/mall-tiny-easypoi/src/main/resources/json/orders.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "id": 1, - "orderSn": "201809150101000001", - "createTime": "2021-10-10 17:02:28", - "receiverAddress": "广东省深圳市" - }, - { - "id": 1, - "orderSn": "201809150101000002", - "createTime": "2021-10-11 17:02:28", - "receiverAddress": "江苏省南京市" - }, - { - "id": 1, - "orderSn": "201809150101000003", - "createTime": "2021-10-12 17:02:28", - "receiverAddress": "江苏省苏州市" - } -] \ No newline at end of file diff --git a/mall-tiny-easypoi/src/main/resources/json/products.json b/mall-tiny-easypoi/src/main/resources/json/products.json deleted file mode 100644 index 90a40ea0..00000000 --- a/mall-tiny-easypoi/src/main/resources/json/products.json +++ /dev/null @@ -1,29 +0,0 @@ -[ - { - "id": 1, - "productSn": "7437788", - "name": "小米8", - "subTitle": "全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待", - "brandName": "小米", - "price": 2699, - "count": 1 - }, - { - "id": 2, - "productSn": "7437789", - "name": "红米5A", - "subTitle": "全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待", - "brandName": "小米", - "price": 649, - "count": 1 - }, - { - "id": 3, - "productSn": "7437799", - "name": "Apple iPhone 8 Plus", - "subTitle": "64GB 红色特别版 移动联通电信4G手机", - "brandName": "苹果", - "price": 5499, - "count": 1 - } -] \ No newline at end of file diff --git a/mall-tiny-easypoi/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-easypoi/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-easypoi/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-easypoi/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-easypoi/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-easypoi/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-elasticsearch/.gitignore b/mall-tiny-elasticsearch/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-elasticsearch/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-elasticsearch/pom.xml b/mall-tiny-elasticsearch/pom.xml deleted file mode 100644 index c4465e01..00000000 --- a/mall-tiny-elasticsearch/pom.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-elasticsearch - 0.0.1-SNAPSHOT - mall-tiny-elasticsearch - Demo project for Spring Boot - - - 1.8 - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - cn.hutool - hutool-all - 4.5.7 - - - - org.springframework.boot - spring-boot-starter-data-elasticsearch - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index cd91d663..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; -import org.springframework.data.domain.Page; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - /** - * 将SpringData分页后的list转为分页信息 - */ - public static CommonPage restPage(Page pageInfo) { - CommonPage result = new CommonPage(); - result.setTotalPage(pageInfo.getTotalPages()); - result.setPageNum(pageInfo.getNumber()); - result.setPageSize(pageInfo.getSize()); - result.setTotal(pageInfo.getTotalElements()); - result.setList(pageInfo.getContent()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index f4584332..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) -public class MyBatisConfig { -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 8946105a..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .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("/brand/.*")); - 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-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/controller/EsProductController.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/controller/EsProductController.java deleted file mode 100644 index a6a45a38..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/controller/EsProductController.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.EsProductRelatedInfo; -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import com.macro.mall.tiny.service.EsProductService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 搜索商品管理Controller - * Created by macro on 2018/6/19. - */ -@Controller -@Api(tags = "EsProductController", description = "搜索商品管理") -@RequestMapping("/esProduct") -public class EsProductController { - @Autowired - private EsProductService esProductService; - - @ApiOperation(value = "导入所有数据库中商品到ES") - @RequestMapping(value = "/importAll", method = RequestMethod.POST) - @ResponseBody - public CommonResult importAllList() { - int count = esProductService.importAll(); - return CommonResult.success(count); - } - - @ApiOperation(value = "根据id删除商品") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult delete(@PathVariable Long id) { - esProductService.delete(id); - return CommonResult.success(null); - } - - @ApiOperation(value = "根据id批量删除商品") - @RequestMapping(value = "/delete/batch", method = RequestMethod.POST) - @ResponseBody - public CommonResult delete(@RequestParam("ids") List ids) { - esProductService.delete(ids); - return CommonResult.success(null); - } - - @ApiOperation(value = "根据id创建商品") - @RequestMapping(value = "/create/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult create(@PathVariable Long id) { - EsProduct esProduct = esProductService.create(id); - if (esProduct != null) { - return CommonResult.success(esProduct); - } else { - return CommonResult.failed(); - } - } - - @ApiOperation(value = "简单搜索") - @RequestMapping(value = "/search/simple", method = RequestMethod.GET) - @ResponseBody - public CommonResult> search(@RequestParam(required = false) String keyword, - @RequestParam(required = false, defaultValue = "0") Integer pageNum, - @RequestParam(required = false, defaultValue = "5") Integer pageSize) { - Page esProductPage = esProductService.search(keyword, pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(esProductPage)); - } - - @ApiOperation(value = "综合搜索、筛选、排序") - @ApiImplicitParam(name = "sort", value = "排序字段:0->按相关度;1->按新品;2->按销量;3->价格从低到高;4->价格从高到低", - defaultValue = "0", allowableValues = "0,1,2,3,4", paramType = "query", dataType = "integer") - @RequestMapping(value = "/search", method = RequestMethod.GET) - @ResponseBody - public CommonResult> search(@RequestParam(required = false) String keyword, - @RequestParam(required = false) Long brandId, - @RequestParam(required = false) Long productCategoryId, - @RequestParam(required = false, defaultValue = "0") Integer pageNum, - @RequestParam(required = false, defaultValue = "5") Integer pageSize, - @RequestParam(required = false, defaultValue = "0") Integer sort) { - Page esProductPage = esProductService.search(keyword, brandId, productCategoryId, pageNum, pageSize, sort); - return CommonResult.success(CommonPage.restPage(esProductPage)); - } - - @ApiOperation(value = "根据商品id推荐商品") - @RequestMapping(value = "/recommend/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult> recommend(@PathVariable Long id, - @RequestParam(required = false, defaultValue = "0") Integer pageNum, - @RequestParam(required = false, defaultValue = "5") Integer pageSize) { - Page esProductPage = esProductService.recommend(id, pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(esProductPage)); - } - - @ApiOperation(value = "获取搜索的相关品牌、分类及筛选属性") - @RequestMapping(value = "/search/relate", method = RequestMethod.GET) - @ResponseBody - public CommonResult searchRelatedInfo(@RequestParam(required = false) String keyword) { - EsProductRelatedInfo productRelatedInfo = esProductService.searchRelatedInfo(keyword); - return CommonResult.success(productRelatedInfo); - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java deleted file mode 100644 index 7a9a94e2..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.macro.mall.tiny.dao; - -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 搜索系统中的商品管理自定义Dao - * Created by macro on 2018/6/19. - */ -public interface EsProductDao { - List getAllEsProductList(@Param("id") Long id); -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/domain/EsProductRelatedInfo.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/domain/EsProductRelatedInfo.java deleted file mode 100644 index ce151042..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/domain/EsProductRelatedInfo.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.macro.mall.tiny.domain; - -import java.util.List; - -/** - * 搜索相关商品品牌名称,分类名称及属性 - * Created by macro on 2018/6/27. - */ -public class EsProductRelatedInfo { - private List brandNames; - private List productCategoryNames; - private List productAttrs; - - public List getBrandNames() { - return brandNames; - } - - public void setBrandNames(List brandNames) { - this.brandNames = brandNames; - } - - public List getProductCategoryNames() { - return productCategoryNames; - } - - public void setProductCategoryNames(List productCategoryNames) { - this.productCategoryNames = productCategoryNames; - } - - public List getProductAttrs() { - return productAttrs; - } - - public void setProductAttrs(List productAttrs) { - this.productAttrs = productAttrs; - } - - public static class ProductAttr{ - private Long attrId; - private String attrName; - private List attrValues; - - public Long getAttrId() { - return attrId; - } - - public void setAttrId(Long attrId) { - this.attrId = attrId; - } - - public List getAttrValues() { - return attrValues; - } - - public void setAttrValues(List attrValues) { - this.attrValues = attrValues; - } - - public String getAttrName() { - return attrName; - } - - public void setAttrName(String attrName) { - this.attrName = attrName; - } - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index 26fd7a09..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - int countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index b7e7623a..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - int countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index 629bbd92..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - int countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index fbf7b800..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - int countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index e9e800f1..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - int countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 350ad73f..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - int countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java deleted file mode 100644 index 3a8e6839..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java +++ /dev/null @@ -1,189 +0,0 @@ -package com.macro.mall.tiny.nosql.elasticsearch.document; - -import org.springframework.data.annotation.Id; -import org.springframework.data.elasticsearch.annotations.Document; -import org.springframework.data.elasticsearch.annotations.Field; -import org.springframework.data.elasticsearch.annotations.FieldType; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.List; - -/** - * 搜索中的商品信息 - * Created by macro on 2018/6/19. - */ -@Document(indexName = "pms", type = "product",shards = 1,replicas = 0) -public class EsProduct implements Serializable { - private static final long serialVersionUID = -1L; - @Id - private Long id; - @Field(type = FieldType.Keyword) - private String productSn; - private Long brandId; - @Field(type = FieldType.Keyword) - private String brandName; - private Long productCategoryId; - @Field(type = FieldType.Keyword) - private String productCategoryName; - private String pic; - @Field(analyzer = "ik_max_word",type = FieldType.Text) - private String name; - @Field(analyzer = "ik_max_word",type = FieldType.Text) - private String subTitle; - @Field(analyzer = "ik_max_word",type = FieldType.Text) - private String keywords; - private BigDecimal price; - private Integer sale; - private Integer newStatus; - private Integer recommandStatus; - private Integer stock; - private Integer promotionType; - private Integer sort; - @Field(type =FieldType.Nested) - private List attrValueList; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getProductSn() { - return productSn; - } - - public void setProductSn(String productSn) { - this.productSn = productSn; - } - - public Long getBrandId() { - return brandId; - } - - public void setBrandId(Long brandId) { - this.brandId = brandId; - } - - public String getBrandName() { - return brandName; - } - - public void setBrandName(String brandName) { - this.brandName = brandName; - } - - public Long getProductCategoryId() { - return productCategoryId; - } - - public void setProductCategoryId(Long productCategoryId) { - this.productCategoryId = productCategoryId; - } - - public String getProductCategoryName() { - return productCategoryName; - } - - public void setProductCategoryName(String productCategoryName) { - this.productCategoryName = productCategoryName; - } - - public String getPic() { - return pic; - } - - public void setPic(String pic) { - this.pic = pic; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSubTitle() { - return subTitle; - } - - public void setSubTitle(String subTitle) { - this.subTitle = subTitle; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public Integer getSale() { - return sale; - } - - public void setSale(Integer sale) { - this.sale = sale; - } - - public Integer getNewStatus() { - return newStatus; - } - - public void setNewStatus(Integer newStatus) { - this.newStatus = newStatus; - } - - public Integer getRecommandStatus() { - return recommandStatus; - } - - public void setRecommandStatus(Integer recommandStatus) { - this.recommandStatus = recommandStatus; - } - - public Integer getStock() { - return stock; - } - - public void setStock(Integer stock) { - this.stock = stock; - } - - public Integer getPromotionType() { - return promotionType; - } - - public void setPromotionType(Integer promotionType) { - this.promotionType = promotionType; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public List getAttrValueList() { - return attrValueList; - } - - public void setAttrValueList(List attrValueList) { - this.attrValueList = attrValueList; - } - - public String getKeywords() { - return keywords; - } - - public void setKeywords(String keywords) { - this.keywords = keywords; - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java deleted file mode 100644 index 676f6e23..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.nosql.elasticsearch.document; - -import org.springframework.data.elasticsearch.annotations.Field; -import org.springframework.data.elasticsearch.annotations.FieldType; - -import java.io.Serializable; - -/** - * 搜索中的商品属性信息 - * Created by macro on 2018/6/27. - */ -public class EsProductAttributeValue implements Serializable { - private static final long serialVersionUID = 1L; - private Long id; - private Long productAttributeId; - //属性值 - @Field(type = FieldType.Keyword) - private String value; - //属性参数:0->规格;1->参数 - private Integer type; - //属性名称 - @Field(type=FieldType.Keyword) - private String name; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getProductAttributeId() { - return productAttributeId; - } - - public void setProductAttributeId(Long productAttributeId) { - this.productAttributeId = productAttributeId; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java deleted file mode 100644 index d874dd7f..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.nosql.elasticsearch.repository; - -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; - -/** - * 商品ES操作类 - * Created by macro on 2018/6/19. - */ -public interface EsProductRepository extends ElasticsearchRepository { - /** - * 搜索查询 - * - * @param name 商品名称 - * @param subTitle 商品标题 - * @param keywords 商品关键字 - * @param page 分页信息 - * @return - */ - Page findByNameOrSubTitleOrKeywords(String name, String subTitle, String keywords, Pageable page); - -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/service/EsProductService.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/service/EsProductService.java deleted file mode 100644 index 14356e95..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/service/EsProductService.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.EsProductRelatedInfo; -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import org.springframework.data.domain.Page; - -import java.util.List; - -/** - * 商品搜索管理Service - * Created by macro on 2018/6/19. - */ -public interface EsProductService { - /** - * 从数据库中导入所有商品到ES - */ - int importAll(); - - /** - * 根据id删除商品 - */ - void delete(Long id); - - /** - * 根据id创建商品 - */ - EsProduct create(Long id); - - /** - * 批量删除商品 - */ - void delete(List ids); - - /** - * 根据关键字搜索名称或者副标题 - */ - Page search(String keyword, Integer pageNum, Integer pageSize); - - /** - * 根据关键字搜索名称或者副标题复合查询 - */ - Page search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize,Integer sort); - - /** - * 根据商品id推荐相关商品 - */ - Page recommend(Long id, Integer pageNum, Integer pageSize); - - /** - * 获取搜索词相关品牌、分类、属性 - */ - EsProductRelatedInfo searchRelatedInfo(String keyword); -} diff --git a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java b/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java deleted file mode 100644 index be9e724a..00000000 --- a/mall-tiny-elasticsearch/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java +++ /dev/null @@ -1,275 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.dao.EsProductDao; -import com.macro.mall.tiny.domain.EsProductRelatedInfo; -import com.macro.mall.tiny.nosql.elasticsearch.document.EsProduct; -import com.macro.mall.tiny.nosql.elasticsearch.repository.EsProductRepository; -import com.macro.mall.tiny.service.EsProductService; -import org.elasticsearch.common.lucene.search.function.FunctionScoreQuery; -import org.elasticsearch.index.query.BoolQueryBuilder; -import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; -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.filter.ParsedFilter; -import org.elasticsearch.search.aggregations.bucket.nested.InternalNested; -import org.elasticsearch.search.aggregations.bucket.nested.ParsedNested; -import org.elasticsearch.search.aggregations.bucket.terms.*; -import org.elasticsearch.search.sort.SortBuilders; -import org.elasticsearch.search.sort.SortOrder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -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.ElasticsearchRestTemplate; -import org.springframework.data.elasticsearch.core.SearchHits; -import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; -import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - - -/** - * 商品搜索管理Service实现类 - * Created by macro on 2018/6/19. - */ -@Service -public class EsProductServiceImpl implements EsProductService { - private static final Logger LOGGER = LoggerFactory.getLogger(EsProductServiceImpl.class); - @Autowired - private EsProductDao productDao; - @Autowired - private EsProductRepository productRepository; - @Autowired - private ElasticsearchRestTemplate elasticsearchRestTemplate; - @Override - public int importAll() { - List esProductList = productDao.getAllEsProductList(null); - Iterable esProductIterable = productRepository.saveAll(esProductList); - Iterator iterator = esProductIterable.iterator(); - int result = 0; - while (iterator.hasNext()) { - result++; - iterator.next(); - } - return result; - } - - @Override - public void delete(Long id) { - productRepository.deleteById(id); - } - - @Override - public EsProduct create(Long id) { - EsProduct result = null; - List esProductList = productDao.getAllEsProductList(id); - if (esProductList.size() > 0) { - EsProduct esProduct = esProductList.get(0); - result = productRepository.save(esProduct); - } - return result; - } - - @Override - public void delete(List ids) { - if (!CollectionUtils.isEmpty(ids)) { - List esProductList = new ArrayList<>(); - for (Long id : ids) { - EsProduct esProduct = new EsProduct(); - esProduct.setId(id); - esProductList.add(esProduct); - } - productRepository.deleteAll(esProductList); - } - } - - @Override - public Page search(String keyword, Integer pageNum, Integer pageSize) { - Pageable pageable = PageRequest.of(pageNum, pageSize); - return productRepository.findByNameOrSubTitleOrKeywords(keyword, keyword, keyword, pageable); - } - - @Override - public Page search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize,Integer sort) { - Pageable pageable = PageRequest.of(pageNum, pageSize); - NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder(); - //分页 - nativeSearchQueryBuilder.withPageable(pageable); - //过滤 - if (brandId != null || productCategoryId != null) { - BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); - if (brandId != null) { - boolQueryBuilder.must(QueryBuilders.termQuery("brandId", brandId)); - } - if (productCategoryId != null) { - boolQueryBuilder.must(QueryBuilders.termQuery("productCategoryId", productCategoryId)); - } - nativeSearchQueryBuilder.withFilter(boolQueryBuilder); - } - //搜索 - if (StringUtils.isEmpty(keyword)) { - nativeSearchQueryBuilder.withQuery(QueryBuilders.matchAllQuery()); - } else { - List filterFunctionBuilders = new ArrayList<>(); - filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("name", keyword), - ScoreFunctionBuilders.weightFactorFunction(10))); - filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("subTitle", keyword), - ScoreFunctionBuilders.weightFactorFunction(5))); - filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("keywords", keyword), - ScoreFunctionBuilders.weightFactorFunction(2))); - FunctionScoreQueryBuilder.FilterFunctionBuilder[] builders = new FunctionScoreQueryBuilder.FilterFunctionBuilder[filterFunctionBuilders.size()]; - filterFunctionBuilders.toArray(builders); - FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(builders) - .scoreMode(FunctionScoreQuery.ScoreMode.SUM) - .setMinScore(2); - nativeSearchQueryBuilder.withQuery(functionScoreQueryBuilder); - } - //排序 - if(sort==1){ - //按新品从新到旧 - nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort("id").order(SortOrder.DESC)); - }else if(sort==2){ - //按销量从高到低 - nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort("sale").order(SortOrder.DESC)); - }else if(sort==3){ - //按价格从低到高 - nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort("price").order(SortOrder.ASC)); - }else if(sort==4){ - //按价格从高到低 - nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort("price").order(SortOrder.DESC)); - }else{ - //按相关度 - nativeSearchQueryBuilder.withSort(SortBuilders.scoreSort().order(SortOrder.DESC)); - } - nativeSearchQueryBuilder.withSort(SortBuilders.scoreSort().order(SortOrder.DESC)); - NativeSearchQuery searchQuery = nativeSearchQueryBuilder.build(); - LOGGER.info("DSL:{}", searchQuery.getQuery().toString()); - return productRepository.search(searchQuery); - } - - @Override - public Page recommend(Long id, Integer pageNum, Integer pageSize) { - Pageable pageable = PageRequest.of(pageNum, pageSize); - List esProductList = productDao.getAllEsProductList(id); - if (esProductList.size() > 0) { - EsProduct esProduct = esProductList.get(0); - String keyword = esProduct.getName(); - Long brandId = esProduct.getBrandId(); - Long productCategoryId = esProduct.getProductCategoryId(); - //根据商品标题、品牌、分类进行搜索 - List filterFunctionBuilders = new ArrayList<>(); - filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("name", keyword), - ScoreFunctionBuilders.weightFactorFunction(8))); - filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("subTitle", keyword), - ScoreFunctionBuilders.weightFactorFunction(2))); - filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("keywords", keyword), - ScoreFunctionBuilders.weightFactorFunction(2))); - filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("brandId", brandId), - ScoreFunctionBuilders.weightFactorFunction(5))); - filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("productCategoryId", productCategoryId), - ScoreFunctionBuilders.weightFactorFunction(3))); - FunctionScoreQueryBuilder.FilterFunctionBuilder[] builders = new FunctionScoreQueryBuilder.FilterFunctionBuilder[filterFunctionBuilders.size()]; - filterFunctionBuilders.toArray(builders); - FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(builders) - .scoreMode(FunctionScoreQuery.ScoreMode.SUM) - .setMinScore(2); - //用于过滤掉相同的商品 - BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); - boolQueryBuilder.mustNot(QueryBuilders.termQuery("id",id)); - //构建查询条件 - NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder(); - builder.withQuery(functionScoreQueryBuilder); - builder.withFilter(boolQueryBuilder); - builder.withPageable(pageable); - NativeSearchQuery searchQuery = builder.build(); - LOGGER.info("DSL:{}", searchQuery.getQuery().toString()); - return productRepository.search(searchQuery); - } - return new PageImpl<>(null); - } - - @Override - public EsProductRelatedInfo searchRelatedInfo(String keyword) { - NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder(); - //搜索条件 - if(StringUtils.isEmpty(keyword)){ - builder.withQuery(QueryBuilders.matchAllQuery()); - }else{ - builder.withQuery(QueryBuilders.multiMatchQuery(keyword,"name","subTitle","keywords")); - } - //聚合搜索品牌名称 - builder.addAggregation(AggregationBuilders.terms("brandNames").field("brandName")); - //集合搜索分类名称 - builder.addAggregation(AggregationBuilders.terms("productCategoryNames").field("productCategoryName")); - //聚合搜索商品属性,去除type=1的属性 - AbstractAggregationBuilder aggregationBuilder = AggregationBuilders.nested("allAttrValues","attrValueList") - .subAggregation(AggregationBuilders.filter("productAttrs",QueryBuilders.termQuery("attrValueList.type",1)) - .subAggregation(AggregationBuilders.terms("attrIds") - .field("attrValueList.productAttributeId") - .subAggregation(AggregationBuilders.terms("attrValues") - .field("attrValueList.value")) - .subAggregation(AggregationBuilders.terms("attrNames") - .field("attrValueList.name")))); - builder.addAggregation(aggregationBuilder); - NativeSearchQuery searchQuery = builder.build(); - SearchHits searchHits = elasticsearchRestTemplate.search(searchQuery, EsProduct.class); - return convertProductRelatedInfo(searchHits); - } - - /** - * 将返回结果转换为对象 - */ - private EsProductRelatedInfo convertProductRelatedInfo(SearchHits response) { - EsProductRelatedInfo productRelatedInfo = new EsProductRelatedInfo(); - Map aggregationMap = response.getAggregations().getAsMap(); - //设置品牌 - Aggregation brandNames = aggregationMap.get("brandNames"); - List brandNameList = new ArrayList<>(); - for(int i = 0; i<((Terms) brandNames).getBuckets().size(); i++){ - brandNameList.add(((Terms) brandNames).getBuckets().get(i).getKeyAsString()); - } - productRelatedInfo.setBrandNames(brandNameList); - //设置分类 - Aggregation productCategoryNames = aggregationMap.get("productCategoryNames"); - List productCategoryNameList = new ArrayList<>(); - for(int i=0;i<((Terms) productCategoryNames).getBuckets().size();i++){ - productCategoryNameList.add(((Terms) productCategoryNames).getBuckets().get(i).getKeyAsString()); - } - productRelatedInfo.setProductCategoryNames(productCategoryNameList); - //设置参数 - Aggregation productAttrs = aggregationMap.get("allAttrValues"); - 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 = ((ParsedStringTerms) attrId.getAggregations().get("attrValues")).getBuckets(); - List attrNames = ((ParsedStringTerms) attrId.getAggregations().get("attrNames")).getBuckets(); - for (Terms.Bucket attrValue : attrValues) { - attrValueList.add(attrValue.getKeyAsString()); - } - attr.setAttrValues(attrValueList); - if(!CollectionUtils.isEmpty(attrNames)){ - String attrName = attrNames.get(0).getKeyAsString(); - attr.setAttrName(attrName); - } - attrList.add(attr); - } - productRelatedInfo.setProductAttrs(attrList); - return productRelatedInfo; - } -} diff --git a/mall-tiny-elasticsearch/src/main/resources/application.yml b/mall-tiny-elasticsearch/src/main/resources/application.yml deleted file mode 100644 index fcb81ff1..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/application.yml +++ /dev/null @@ -1,19 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - data: - elasticsearch: - repositories: - enabled: true - elasticsearch: - rest: - uris: http://localhost:9200 -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index 9257d91e..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index 1ab6b6bd..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index 663609b6..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 0dd6a905..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 9286feca..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index 72db64de..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/generator.properties b/mall-tiny-elasticsearch/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/generatorConfig.xml b/mall-tiny-elasticsearch/src/main/resources/generatorConfig.xml deleted file mode 100644 index 4052e493..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - -
- - -
- - -
-
-
\ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny-elasticsearch/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny-elasticsearch/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-elasticsearch/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-elasticsearch/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-elk/.gitignore b/mall-tiny-elk/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-elk/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-elk/pom.xml b/mall-tiny-elk/pom.xml deleted file mode 100644 index 8269c679..00000000 --- a/mall-tiny-elk/pom.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-elk - 0.0.1-SNAPSHOT - mall-tiny-elk - Demo project for Spring Boot - - - 1.8 - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.7 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - cn.hutool - hutool-all - 4.5.7 - - - - net.logstash.logback - logstash-logback-encoder - 5.3 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-elk/src/main/docker/docker-compose.yml b/mall-tiny-elk/src/main/docker/docker-compose.yml deleted file mode 100644 index 708c8ed0..00000000 --- a/mall-tiny-elk/src/main/docker/docker-compose.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3' -services: - elasticsearch: - image: elasticsearch:6.4.0 - container_name: elasticsearch - environment: - - "cluster.name=elasticsearch" #设置集群名称为elasticsearch - - "discovery.type=single-node" #以单一节点模式启动 - - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小 - volumes: - - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载 - - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载 - ports: - - 9200:9200 - kibana: - image: kibana:6.4.0 - container_name: kibana - links: - - elasticsearch:es #可以用es这个域名访问elasticsearch服务 - depends_on: - - elasticsearch #kibana在elasticsearch启动之后再启动 - environment: - - "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址 - ports: - - 5601:5601 - logstash: - image: logstash:6.4.0 - container_name: logstash - volumes: - - /mydata/logstash/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件 - depends_on: - - elasticsearch #kibana在elasticsearch启动之后再启动 - links: - - elasticsearch:es #可以用es这个域名访问elasticsearch服务 - ports: - - 4560:4560 \ No newline at end of file diff --git a/mall-tiny-elk/src/main/docker/logstash-springboot.conf b/mall-tiny-elk/src/main/docker/logstash-springboot.conf deleted file mode 100644 index a71e9199..00000000 --- a/mall-tiny-elk/src/main/docker/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/mall-tiny-elk/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java deleted file mode 100644 index 2d44cedd..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.URLUtil; -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.dto.WebLog; -import io.swagger.annotations.ApiOperation; -import net.logstash.logback.marker.Markers; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.Signature; -import org.aspectj.lang.annotation.*; -import org.aspectj.lang.reflect.MethodSignature; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 统一日志处理切面 - * Created by macro on 2018/4/26. - */ -@Aspect -@Component -@Order(1) -public class WebLogAspect { - private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class); - - @Pointcut("execution(public * com.macro.mall.tiny.controller.*.*(..))") - public void webLog() { - } - - @Before("webLog()") - public void doBefore(JoinPoint joinPoint) throws Throwable { - } - - @AfterReturning(value = "webLog()", returning = "ret") - public void doAfterReturning(Object ret) throws Throwable { - } - - @Around("webLog()") - public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { - long startTime = System.currentTimeMillis(); - //获取当前请求对象 - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = attributes.getRequest(); - //记录请求信息 - WebLog webLog = new WebLog(); - Object result = joinPoint.proceed(); - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - if (method.isAnnotationPresent(ApiOperation.class)) { - ApiOperation apiOperation = method.getAnnotation(ApiOperation.class); - webLog.setDescription(apiOperation.value()); - } - long endTime = System.currentTimeMillis(); - String urlStr = request.getRequestURL().toString(); - webLog.setBasePath(StrUtil.removeSuffix(urlStr, URLUtil.url(urlStr).getPath())); - webLog.setIp(request.getRemoteUser()); - webLog.setMethod(request.getMethod()); - webLog.setParameter(getParameter(method, joinPoint.getArgs())); - webLog.setResult(result); - webLog.setSpendTime((int) (endTime - startTime)); - webLog.setStartTime(startTime); - webLog.setUri(request.getRequestURI()); - webLog.setUrl(request.getRequestURL().toString()); -// LOGGER.info("{}", JSONUtil.parse(webLog)); - Map logMap = new HashMap<>(); - logMap.put("url",webLog.getUrl()); - logMap.put("method",webLog.getMethod()); - logMap.put("parameter",webLog.getParameter()); - logMap.put("spendTime",webLog.getSpendTime()); - logMap.put("description",webLog.getDescription()); - LOGGER.info(Markers.appendEntries(logMap), JSONUtil.parse(webLog).toString()); - return result; - } - - /** - * 根据方法和传入的参数获取请求参数 - */ - private Object getParameter(Method method, Object[] args) { - List argList = new ArrayList<>(); - Parameter[] parameters = method.getParameters(); - for (int i = 0; i < parameters.length; i++) { - //将RequestBody注解修饰的参数作为请求参数 - RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); - if (requestBody != null) { - argList.add(args[i]); - } - //将RequestParam注解修饰的参数作为请求参数 - RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); - if (requestParam != null) { - Map map = new HashMap<>(); - String key = parameters[i].getName(); - if (!StringUtils.isEmpty(requestParam.value())) { - key = requestParam.value(); - } - map.put(key, args[i]); - argList.add(map); - } - } - if (argList.size() == 0) { - return null; - } else if (argList.size() == 1) { - return argList.get(0); - } else { - return argList; - } - } -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/dto/WebLog.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/dto/WebLog.java deleted file mode 100644 index c2fb9f1c..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/dto/WebLog.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.macro.mall.tiny.dto; - -/** - * 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-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 37d62163..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - long countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-elk/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-elk/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-elk/src/main/resources/application.yml b/mall-tiny-elk/src/main/resources/application.yml deleted file mode 100644 index 5edcbdbc..00000000 --- a/mall-tiny-elk/src/main/resources/application.yml +++ /dev/null @@ -1,13 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-elk/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-elk/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 51b5436b..00000000 --- a/mall-tiny-elk/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elk/src/main/resources/generator.properties b/mall-tiny-elk/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-elk/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-elk/src/main/resources/generatorConfig.xml b/mall-tiny-elk/src/main/resources/generatorConfig.xml deleted file mode 100644 index 4d932cce..00000000 --- a/mall-tiny-elk/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-elk/src/main/resources/logback-spring.xml b/mall-tiny-elk/src/main/resources/logback-spring.xml deleted file mode 100644 index 028773c9..00000000 --- a/mall-tiny-elk/src/main/resources/logback-spring.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - ${APP_NAME} - - - - ${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log - 30 - - - ${FILE_LOG_PATTERN} - - - - - - 192.168.3.101:4560 - - - - - - - - diff --git a/mall-tiny-elk/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-elk/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-elk/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-erupt/.gitignore b/mall-tiny-erupt/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-erupt/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-erupt/pom.xml b/mall-tiny-erupt/pom.xml deleted file mode 100644 index a83b6a18..00000000 --- a/mall-tiny-erupt/pom.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-erupt - 1.0-SNAPSHOT - mall-tiny-erupt - Demo project for Erupt - - - UTF-8 - UTF-8 - 1.8 - true - 1.6.13 - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - xyz.erupt - erupt-upms - ${erupt.version} - - - - xyz.erupt - erupt-security - ${erupt.version} - - - - xyz.erupt - erupt-web - ${erupt.version} - - - - xyz.erupt - erupt-job - ${erupt.version} - - - - xyz.erupt - erupt-tpl - ${erupt.version} - - - - xyz.erupt - erupt-tpl-ui.element-ui - ${erupt.version} - - - - xyz.erupt - erupt-generator - ${erupt.version} - - - - xyz.erupt - erupt-monitor - ${erupt.version} - - - - xyz.erupt - erupt-mongodb - ${erupt.version} - - - - xyz.erupt - erupt-magic-api - ${erupt.version} - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/config/EruptConfig.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/config/EruptConfig.java deleted file mode 100644 index 59d4021b..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/config/EruptConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import xyz.erupt.core.annotation.EruptScan; - -/** - * Created by macro on 2021/4/13. - */ -@Configuration -@ComponentScan({"xyz.erupt","com.macro.mall.tiny"}) -@EntityScan({"xyz.erupt","com.macro.mall.tiny"}) -@EruptScan({"xyz.erupt","com.macro.mall.tiny"}) -public class EruptConfig { -} diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/controller/TestController.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/controller/TestController.java deleted file mode 100644 index 4b0c6266..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/controller/TestController.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -/** - * Created by macro on 2021/3/25. - */ -@Controller -@RequestMapping("/test") -public class TestController { - - @RequestMapping(value = "/first", method = RequestMethod.GET) - @ResponseBody - public CommonResult first() { - String message = "返回消息"; - return CommonResult.success(null,message); - } -} diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/job/JobHandlerImpl.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/job/JobHandlerImpl.java deleted file mode 100644 index cf25582f..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/job/JobHandlerImpl.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.macro.mall.tiny.job; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import xyz.erupt.job.handler.EruptJobHandler; - -/** - * Created by macro on 2021/4/13. - */ -@Service -@Slf4j -public class JobHandlerImpl implements EruptJobHandler { - @Override - public String exec(String code, String param) throws Exception { - log.info("定时任务已经执行,code:{},param:{}",code,param); - return "success"; - } -} diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/model/PmsBrand.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/model/PmsBrand.java deleted file mode 100644 index 4dfdcace..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/model/PmsBrand.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.macro.mall.tiny.model; - -import org.hibernate.annotations.GenericGenerator; -import xyz.erupt.annotation.Erupt; -import xyz.erupt.annotation.EruptField; -import xyz.erupt.annotation.sub_field.Edit; -import xyz.erupt.annotation.sub_field.EditType; -import xyz.erupt.annotation.sub_field.View; -import xyz.erupt.annotation.sub_field.sub_edit.AttachmentType; -import xyz.erupt.annotation.sub_field.sub_edit.Search; - -import javax.persistence.*; - -@Erupt(name = "商品品牌") -@Table(name = "pms_brand") -@Entity -public class PmsBrand { - - @Id - @GeneratedValue(generator = "generator") - @GenericGenerator(name = "generator", strategy = "native") - @Column(name = "id") - @EruptField - private Long id; - - @EruptField( - views = @View(title = "品牌名称"), - edit = @Edit(title = "品牌名称",notNull=true,search = @Search(vague = true)) - ) - private String name; - - @EruptField( - views = @View(title = "品牌首字母"), - edit = @Edit(title = "品牌首字母",notNull=true) - ) - private String firstLetter; - - @EruptField( - views = @View(title = "品牌LOGO"), - edit = @Edit(title = "品牌LOGO", type = EditType.ATTACHMENT, - attachmentType = @AttachmentType(type = AttachmentType.Type.IMAGE)) - ) - private String logo; - - @EruptField( - views = @View(title = "品牌专区大图"), - edit = @Edit(title = "品牌专区大图", type = EditType.ATTACHMENT, - attachmentType = @AttachmentType(type = AttachmentType.Type.IMAGE)) - ) - private String bigPic; - - @EruptField( - views = @View(title = "品牌故事"), - edit = @Edit(title = "品牌故事") - ) - private String brandStory; - - @EruptField( - views = @View(title = "排序"), - edit = @Edit(title = "排序") - ) - private Integer sort; - - @EruptField( - views = @View(title = "是否显示"), - edit = @Edit(title = "是否显示") - ) - private Boolean showStatus; - - @EruptField( - views = @View(title = "品牌制造商"), - edit = @Edit(title = "品牌制造商") - ) - private Boolean factoryStatus; - - private Integer productCount; - - private Integer productCommentCount; - -} \ No newline at end of file diff --git a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/model/PmsProduct.java b/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/model/PmsProduct.java deleted file mode 100644 index cc0ea4d2..00000000 --- a/mall-tiny-erupt/src/main/java/com/macro/mall/tiny/model/PmsProduct.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.macro.mall.tiny.model; - -import org.springframework.data.mongodb.core.mapping.Document; -import xyz.erupt.annotation.Erupt; -import xyz.erupt.annotation.EruptField; -import xyz.erupt.annotation.sub_field.Edit; -import xyz.erupt.annotation.sub_field.EditType; -import xyz.erupt.annotation.sub_field.View; -import xyz.erupt.annotation.sub_field.sub_edit.AttachmentType; -import xyz.erupt.annotation.sub_field.sub_edit.BoolType; -import xyz.erupt.annotation.sub_field.sub_edit.Search; -import xyz.erupt.core.annotation.EruptDataProcessor; -import xyz.erupt.mongodb.EruptMongodbImpl; - -import javax.persistence.Id; -import java.util.Date; - -/** - * Created by macro on 2021/4/13. - */ -@EruptDataProcessor(EruptMongodbImpl.MONGODB_PROCESS) //此注解表示使用MongoDB来存储数据 -@Document(collection = "product") -@Erupt( - name = "商品管理", - orderBy = "sort" -) -public class PmsProduct { - @Id - @EruptField - private String id; - - @EruptField( - views = @View(title = "商品名称", sortable = true), - edit = @Edit(title = "商品名称", search = @Search(vague = true)) - ) - private String name; - - @EruptField( - views = @View(title = "副标题", sortable = true), - edit = @Edit(title = "副标题", search = @Search(vague = true)) - ) - private String subTitle; - - @EruptField( - views = @View(title = "价格", sortable = true), - edit = @Edit(title = "价格") - ) - private Double price; - - @EruptField( - views = @View(title = "商品图片"), - edit = @Edit(title = "商品图片", type = EditType.ATTACHMENT, - attachmentType = @AttachmentType(type = AttachmentType.Type.IMAGE)) - ) - private String pic; - - @EruptField( - views = @View(title = "状态", sortable = true), - edit = @Edit(title = "状态", - boolType = @BoolType(trueText = "上架", falseText = "下架"), - search = @Search) - ) - private Boolean publishStatus; - - @EruptField( - views = @View(title = "创建时间", sortable = true), - edit = @Edit(title = "创建时间", search = @Search(vague = true)) - ) - private Date createTime; -} diff --git a/mall-tiny-erupt/src/main/resources/application.yml b/mall-tiny-erupt/src/main/resources/application.yml deleted file mode 100644 index 8bd1cac0..00000000 --- a/mall-tiny-erupt/src/main/resources/application.yml +++ /dev/null @@ -1,64 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/erupt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai - username: root - password: root - jpa: - show-sql: true - generate-ddl: true - database-platform: org.hibernate.dialect.MySQL5InnoDBDialect - database: mysql - data: - mongodb: - host: localhost # mongodb的连接地址 - port: 27017 # mongodb的连接端口号 - database: erupt # mongodb的连接的数据库 - mail: - username: xxxxxx@qq.com - password: 123456 - host: smtp.exmail.qq.com - port: 465 - properties: - mail.smtp.ssl.auth: true - mail.smtp.ssl.enable: true - mail.smtp.ssl.required: true - - redis: - host: localhost # Redis服务器地址 - database: 1 # Redis数据库索引(默认为0) - port: 6379 # Redis服务器连接端口 - password: 123456 # Redis服务器连接密码(默认为空) - timeout: 3000ms # 连接超时时间 - -erupt-app: - # 登录几次出现验证码,值为0时表示一直需要登录验证码(1.6.1版本开始支持) - verifyCodeCount: 2 - # 登录密码是否加密传输,特殊场景如:LADP登录可关闭该功能获取密码明文(1.6.8及以上版本支持) - pwdTransferEncrypt: true - -erupt: - # 是否开启csrf防御 - csrfInspect: true - # 开启redis方式存储session,默认false,开启后需在配置文件中添加redis配置 - redisSession: true - # 附件上传存储路径, 默认路径为:/opt/erupt-attachment - uploadPath: D:/erupt/pictures - # 是否保留上传文件原始名称 - keepUploadFileName: false - # 登录session时长(redisSession为true时有效) - upms.expireTimeByLogin: 60 - # 是否开启任务调度(导入erupt-job时有效) - job.enable: true - # 是否记录操作日志,默认true,该功能开启后可在【系统管理 → 操作日志】中查看操作日志 - security.recordOperateLog: true - # 设置具体哪些包被jackson消息转化而不是gson - jacksonHttpMessageConvertersPackages: - - org.ssssssss - -magic-api: - web: /magic/web - # 接口配置文件存放路径 - resource.location: D:/erupt/magic-script diff --git a/mall-tiny-erupt/src/main/resources/public/app.css b/mall-tiny-erupt/src/main/resources/public/app.css deleted file mode 100644 index 0d56d073..00000000 --- a/mall-tiny-erupt/src/main/resources/public/app.css +++ /dev/null @@ -1,27 +0,0 @@ -/* 例:调整顶栏颜色 */ -.alain-default__header { - background: #607D8B -} - - - -/* 例:修改登录页样式 */ -layout-passport > .container { - background-position: center !important; - background-repeat: repeat !important; - background-size: cover !important; - background-color: #fff !important; - background-image: url(https://www.erupt.xyz/demo/login-bg.svg) !important; -} - -layout-passport .title { - font-family: Courier New, Menlo, Monaco, Consolas, monospace !important; -} - -layout-passport form { - padding: 26px !important; - margin: 8px !important; - background: rgba(255, 255, 255, 0.9); - border-radius: 3px; - box-shadow: 1px 1px 10px rgba(190, 184, 184, 0.3); -} \ No newline at end of file diff --git a/mall-tiny-erupt/src/main/resources/public/app.js b/mall-tiny-erupt/src/main/resources/public/app.js deleted file mode 100644 index 4774b7ab..00000000 --- a/mall-tiny-erupt/src/main/resources/public/app.js +++ /dev/null @@ -1,59 +0,0 @@ -window.eruptSiteConfig = { - //erupt接口地址,在前后端分离时指定 - domain: "", - //附件地址,一般情况下不需要指定,如果自定义对象存储空间,则需在此指定附件资源访问地址 - fileDomain: "", - //标题 - title: "Erupt Framework", - //描述 - desc: "通用数据管理框架", - //高德地图api key,使用地图组件须指定此属性,amapKey获取地址:https://lbs.amap.com (服务平台为:Web端(JS API)) - amapKey: "6ba79a8d", - //logo路径 - logoPath: "erupt.svg", - //logo文字 - logoText: "erupt", - //是否展示版权信息(1.6.10及以后版本支持) - copyright: true, - //自定义导航栏按钮,配置后将会出现在页面右上角 - r_tools: [{ - text: "自定义功能按钮", - icon: "fa-eercast", - mobileHidden: true, - click: function (event) { - alert("Function button"); - } - }] -}; - -//路由回调函数 -window.eruptRouterEvent = { - //key表示要监听的路由切换地址,为url hash地址最后一段 - //例如:http://www.erupt.xyz:9999/#/build/table/demo中demo为回调key - demo: { - //路由载入事件 - load: function (e) { - - }, - //路由退出事件 - unload: function (e) { - - } - }, - //$ 为全路径通配符,在任何路由切换时都会执行load与unload事件 - $: { - load: function (e) { - - }, - unload: function (e) { - } - } -}; - -//erupt生命周期函数 -window.eruptEvent = { - //页面加载完成后回调 - startup: function () { - - } -} \ No newline at end of file diff --git a/mall-tiny-erupt/src/main/resources/public/home.html b/mall-tiny-erupt/src/main/resources/public/home.html deleted file mode 100644 index d5ca46a2..00000000 --- a/mall-tiny-erupt/src/main/resources/public/home.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - -

Hello World

- - \ No newline at end of file diff --git a/mall-tiny-erupt/src/main/resources/tpl/element-ui.html b/mall-tiny-erupt/src/main/resources/tpl/element-ui.html deleted file mode 100644 index 9b784063..00000000 --- a/mall-tiny-erupt/src/main/resources/tpl/element-ui.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - -
- -
- - - - - - \ No newline at end of file diff --git a/mall-tiny-erupt/src/main/resources/tpl/erupt.html b/mall-tiny-erupt/src/main/resources/tpl/erupt.html deleted file mode 100644 index eb63576d..00000000 --- a/mall-tiny-erupt/src/main/resources/tpl/erupt.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - Title - - -

Hello erupt-tpl

- - \ No newline at end of file diff --git a/mall-tiny-erupt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-erupt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-erupt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-fabric/.gitignore b/mall-tiny-fabric/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-fabric/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-fabric/Dockerfile b/mall-tiny-fabric/Dockerfile deleted file mode 100644 index 27d151e0..00000000 --- a/mall-tiny-fabric/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前maven目录生成的文件复制到docker容器的/目录下 -COPY maven / -# 声明服务运行在8080端口 -EXPOSE 8080 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/mall-tiny-fabric-0.0.1-SNAPSHOT.jar"] -# 指定维护者的名字 -MAINTAINER macrozheng \ No newline at end of file diff --git a/mall-tiny-fabric/pom.xml b/mall-tiny-fabric/pom.xml deleted file mode 100644 index 0175584a..00000000 --- a/mall-tiny-fabric/pom.xml +++ /dev/null @@ -1,157 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-fabric - 0.0.1-SNAPSHOT - mall-tiny-fabric - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - io.fabric8 - docker-maven-plugin - 0.33.0 - - - - build-image - package - - build - - - - - - http://192.168.3.101:2375 - - http://192.168.3.101:5000 - - - - 192.168.3.101:5000/mall-tiny/${project.name}:${project.version} - - - - java:8 - - ${project.build.finalName}.jar - - - - - / - - artifact - - - ["java", "-jar","/${project.build.finalName}.jar"] - - macrozheng - - - - - - - ${project.artifactId} - - - 8080:8080 - - - - mysql:db - - - - - /etc/localtime:/etc/localtime - /mydata/app/${project.artifactId}/logs:/var/logs - - - - - - - - - - - diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-fabric/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-fabric/src/main/resources/application.yml b/mall-tiny-fabric/src/main/resources/application.yml deleted file mode 100644 index 3cff58c5..00000000 --- a/mall-tiny-fabric/src/main/resources/application.yml +++ /dev/null @@ -1,13 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-fabric/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-fabric/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-fabric/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-fabric/src/main/resources/generator.properties b/mall-tiny-fabric/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-fabric/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-fabric/src/main/resources/generatorConfig.xml b/mall-tiny-fabric/src/main/resources/generatorConfig.xml deleted file mode 100644 index 81e04e23..00000000 --- a/mall-tiny-fabric/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-fabric/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-fabric/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-fabric/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-fabric/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-fabric/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-fabric/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-flyway/.gitignore b/mall-tiny-flyway/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-flyway/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-flyway/pom.xml b/mall-tiny-flyway/pom.xml deleted file mode 100644 index 90153a8f..00000000 --- a/mall-tiny-flyway/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-flyway - 0.0.1-SNAPSHOT - mall-tiny-flyway - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.flywaydb - flyway-core - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - org.flywaydb - flyway-maven-plugin - 7.3.2 - - jdbc:mysql://localhost:3306/flyway?serverTimezone=Asia/Shanghai - root - root - - - - mysql - mysql-connector-java - 8.0.15 - - - - - - - diff --git a/mall-tiny-flyway/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-flyway/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-flyway/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-flyway/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-flyway/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-flyway/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-flyway/src/main/resources/application.yml b/mall-tiny-flyway/src/main/resources/application.yml deleted file mode 100644 index ca45de86..00000000 --- a/mall-tiny-flyway/src/main/resources/application.yml +++ /dev/null @@ -1,34 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - flyway: - # 启用Flyway功能 - enabled: true - # 禁用Flyway的clean命令,使用clean命令会删除schema下的所有表 - clean-disabled: true - # 设置Flyway的SQL脚本路径 - locations: classpath:db/migration - # 设置版本信息控制板名称,默认flyway_schema_history - table: flyway_schema_history - # 在执行migrate命令是需要有flyway_schema_history表,通过baseline命令可以生成该表 - baseline-on-migrate: true - # 指定baseline版本号,低于该版本的SQL脚本在migrate是不会执行 - baseline-version: 1 - # 设置字符编码 - encoding: UTF-8 - # 不允许不按顺序迁移 - out-of-order: false - # 设置Flyway管控的schema,不设置的话为datasourcel.url中指定的schema - schemas: flyway - # 执行migrate时开启校验 - validate-on-migrate: true - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml \ No newline at end of file diff --git a/mall-tiny-flyway/src/main/resources/db/migration/R__Ums_admin_view.sql b/mall-tiny-flyway/src/main/resources/db/migration/R__Ums_admin_view.sql deleted file mode 100644 index da8c9523..00000000 --- a/mall-tiny-flyway/src/main/resources/db/migration/R__Ums_admin_view.sql +++ /dev/null @@ -1,6 +0,0 @@ -CREATE - OR REPLACE VIEW ums_admin_view AS -SELECT username, - PASSWORD, - email -FROM ums_admin; \ No newline at end of file diff --git a/mall-tiny-flyway/src/main/resources/db/migration/U1.0.1__Create_ums_admin_table.sql b/mall-tiny-flyway/src/main/resources/db/migration/U1.0.1__Create_ums_admin_table.sql deleted file mode 100644 index 5bfb1733..00000000 --- a/mall-tiny-flyway/src/main/resources/db/migration/U1.0.1__Create_ums_admin_table.sql +++ /dev/null @@ -1 +0,0 @@ -DROP TABLE ums_admin \ No newline at end of file diff --git a/mall-tiny-flyway/src/main/resources/db/migration/U1.0.2__Add_ums_admin.sql b/mall-tiny-flyway/src/main/resources/db/migration/U1.0.2__Add_ums_admin.sql deleted file mode 100644 index 9e313315..00000000 --- a/mall-tiny-flyway/src/main/resources/db/migration/U1.0.2__Add_ums_admin.sql +++ /dev/null @@ -1 +0,0 @@ -DELETE FROM ums_admin; \ No newline at end of file diff --git a/mall-tiny-flyway/src/main/resources/db/migration/V1.0.1__Create_ums_admin_table.sql b/mall-tiny-flyway/src/main/resources/db/migration/V1.0.1__Create_ums_admin_table.sql deleted file mode 100644 index 2ee2908b..00000000 --- a/mall-tiny-flyway/src/main/resources/db/migration/V1.0.1__Create_ums_admin_table.sql +++ /dev/null @@ -1,16 +0,0 @@ -CREATE TABLE `ums_admin` -( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `username` varchar(64) DEFAULT NULL, - `password` varchar(64) DEFAULT NULL, - `icon` varchar(500) DEFAULT NULL COMMENT '头像', - `email` varchar(100) DEFAULT NULL COMMENT '邮箱', - `nick_name` varchar(200) DEFAULT NULL COMMENT '昵称', - `note` varchar(500) DEFAULT NULL COMMENT '备注信息', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `login_time` datetime DEFAULT NULL COMMENT '最后登录时间', - `status` int(1) DEFAULT '1' COMMENT '帐号启用状态:0->禁用;1->启用', - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 8 - DEFAULT CHARSET = utf8 COMMENT ='后台用户表'; \ No newline at end of file diff --git a/mall-tiny-flyway/src/main/resources/db/migration/V1.0.2__Add_ums_admin.sql b/mall-tiny-flyway/src/main/resources/db/migration/V1.0.2__Add_ums_admin.sql deleted file mode 100644 index 4ab93225..00000000 --- a/mall-tiny-flyway/src/main/resources/db/migration/V1.0.2__Add_ums_admin.sql +++ /dev/null @@ -1,6 +0,0 @@ -INSERT INTO ums_admin (username, PASSWORD, email, nick_name, STATUS) -VALUES ('test', '123456', 'test@qq.com', '测试账号', 1); -INSERT INTO ums_admin (username, PASSWORD, email, nick_name, STATUS) -VALUES ('macro', '123456', 'macro@qq.com', '普通账号', 1); -INSERT INTO ums_admin (username, PASSWORD, email, nick_name, STATUS) -VALUES ('andy', '123456', 'andy@qq.com', '普通账号', 1); \ No newline at end of file diff --git a/mall-tiny-flyway/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-flyway/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-flyway/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-generator/pom.xml b/mall-tiny-generator/pom.xml index bdd5320f..50cd3d03 100644 --- a/mall-tiny-generator/pom.xml +++ b/mall-tiny-generator/pom.xml @@ -2,25 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-generator - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-generator Demo project for Spring Boot - - UTF-8 - UTF-8 - 1.8 - true - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -44,48 +37,43 @@ cn.hutool hutool-all - 4.5.7 + ${hutool.version} org.mybatis.spring.boot mybatis-spring-boot-starter - 2.1.3 + ${mybatis-starter.version} com.github.pagehelper pagehelper-spring-boot-starter - 1.3.0 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.4.0 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 + ${mysql-connector.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index f4584332..ad775947 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 3918a401..1298b56b 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,32 +1,41 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; +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.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; import springfox.documentation.swagger2.annotations.EnableSwagger2; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置 + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } @@ -35,8 +44,41 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index c7b13716..5f5e4288 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -10,17 +10,21 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** - * 后台用户管理Controller - * Created by macro on 2020/12/8. + * @auther macrozheng + * @description 后台用户管理Controller + * @date 2020/12/8 + * @github https://github.com/macrozheng */ -@Api(tags = "UmsAdminController", description = "后台用户管理") @RestController +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java index e4da4cc1..614806cd 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java @@ -9,7 +9,10 @@ import java.util.List; /** - * Created by macro on 2020/12/9. + * @auther macrozheng + * @description UmsAdmin自定义Dao + * @date 2022/11/22 + * @github https://github.com/macrozheng */ public interface UmsAdminDao { diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 3ffa0c5e..1d47ea99 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,8 +11,10 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java index d85dac15..6c5f7650 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java @@ -12,19 +12,19 @@ public interface UmsAdminMapper { int deleteByPrimaryKey(Long id); - int insert(UmsAdmin record); + int insert(UmsAdmin row); - int insertSelective(UmsAdmin record); + int insertSelective(UmsAdmin row); List selectByExample(UmsAdminExample example); UmsAdmin selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); + int updateByExampleSelective(@Param("row") UmsAdmin row, @Param("example") UmsAdminExample example); - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); + int updateByExample(@Param("row") UmsAdmin row, @Param("example") UmsAdminExample example); - int updateByPrimaryKeySelective(UmsAdmin record); + int updateByPrimaryKeySelective(UmsAdmin row); - int updateByPrimaryKey(UmsAdmin record); + int updateByPrimaryKey(UmsAdmin row); } \ No newline at end of file diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java index f9988a70..28d64d8b 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java @@ -12,19 +12,19 @@ public interface UmsAdminRoleRelationMapper { int deleteByPrimaryKey(Long id); - int insert(UmsAdminRoleRelation record); + int insert(UmsAdminRoleRelation row); - int insertSelective(UmsAdminRoleRelation record); + int insertSelective(UmsAdminRoleRelation row); List selectByExample(UmsAdminRoleRelationExample example); UmsAdminRoleRelation selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); + int updateByExampleSelective(@Param("row") UmsAdminRoleRelation row, @Param("example") UmsAdminRoleRelationExample example); - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); + int updateByExample(@Param("row") UmsAdminRoleRelation row, @Param("example") UmsAdminRoleRelationExample example); - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); + int updateByPrimaryKeySelective(UmsAdminRoleRelation row); - int updateByPrimaryKey(UmsAdminRoleRelation record); + int updateByPrimaryKey(UmsAdminRoleRelation row); } \ No newline at end of file diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsResourceCategoryMapper.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsResourceCategoryMapper.java index 3713056f..39eee11f 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsResourceCategoryMapper.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsResourceCategoryMapper.java @@ -12,19 +12,19 @@ public interface UmsResourceCategoryMapper { int deleteByPrimaryKey(Long id); - int insert(UmsResourceCategory record); + int insert(UmsResourceCategory row); - int insertSelective(UmsResourceCategory record); + int insertSelective(UmsResourceCategory row); List selectByExample(UmsResourceCategoryExample example); UmsResourceCategory selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") UmsResourceCategory record, @Param("example") UmsResourceCategoryExample example); + int updateByExampleSelective(@Param("row") UmsResourceCategory row, @Param("example") UmsResourceCategoryExample example); - int updateByExample(@Param("record") UmsResourceCategory record, @Param("example") UmsResourceCategoryExample example); + int updateByExample(@Param("row") UmsResourceCategory row, @Param("example") UmsResourceCategoryExample example); - int updateByPrimaryKeySelective(UmsResourceCategory record); + int updateByPrimaryKeySelective(UmsResourceCategory row); - int updateByPrimaryKey(UmsResourceCategory record); + int updateByPrimaryKey(UmsResourceCategory row); } \ No newline at end of file diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsResourceMapper.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsResourceMapper.java index f080803f..caf0b60f 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsResourceMapper.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsResourceMapper.java @@ -12,19 +12,19 @@ public interface UmsResourceMapper { int deleteByPrimaryKey(Long id); - int insert(UmsResource record); + int insert(UmsResource row); - int insertSelective(UmsResource record); + int insertSelective(UmsResource row); List selectByExample(UmsResourceExample example); UmsResource selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") UmsResource record, @Param("example") UmsResourceExample example); + int updateByExampleSelective(@Param("row") UmsResource row, @Param("example") UmsResourceExample example); - int updateByExample(@Param("record") UmsResource record, @Param("example") UmsResourceExample example); + int updateByExample(@Param("row") UmsResource row, @Param("example") UmsResourceExample example); - int updateByPrimaryKeySelective(UmsResource record); + int updateByPrimaryKeySelective(UmsResource row); - int updateByPrimaryKey(UmsResource record); + int updateByPrimaryKey(UmsResource row); } \ No newline at end of file diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java index 10347344..e608c2d9 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java @@ -12,19 +12,19 @@ public interface UmsRoleMapper { int deleteByPrimaryKey(Long id); - int insert(UmsRole record); + int insert(UmsRole row); - int insertSelective(UmsRole record); + int insertSelective(UmsRole row); List selectByExample(UmsRoleExample example); UmsRole selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); + int updateByExampleSelective(@Param("row") UmsRole row, @Param("example") UmsRoleExample example); - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); + int updateByExample(@Param("row") UmsRole row, @Param("example") UmsRoleExample example); - int updateByPrimaryKeySelective(UmsRole record); + int updateByPrimaryKeySelective(UmsRole row); - int updateByPrimaryKey(UmsRole record); + int updateByPrimaryKey(UmsRole row); } \ No newline at end of file diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 5a37f661..b17ea3b8 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -8,8 +8,10 @@ import java.util.List; /** - * 后台用户管理Service - * Created by macro on 2020/12/8. + * @auther macrozheng + * @description 后台用户管理Service + * @date 2020/12/8 + * @github https://github.com/macrozheng */ public interface UmsAdminService { void create(UmsAdmin entity); diff --git a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 22a7e14c..ddd3e2b8 100644 --- a/mall-tiny-generator/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny-generator/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -16,8 +16,10 @@ import java.util.List; /** - * 后台用户管理Service实现类 - * Created by macro on 2020/12/8. + * @auther macrozheng + * @description 后台用户管理Service实现类 + * @date 2020/12/8 + * @github https://github.com/macrozheng */ @Service public class UmsAdminServiceImpl implements UmsAdminService { diff --git a/mall-tiny-generator/src/main/resources/application.yml b/mall-tiny-generator/src/main/resources/application.yml index 30532751..27bdb9f0 100644 --- a/mall-tiny-generator/src/main/resources/application.yml +++ b/mall-tiny-generator/src/main/resources/application.yml @@ -3,9 +3,12 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ant_path_matcher mybatis: mapper-locations: diff --git a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml index c91d5cb4..814e93dd 100644 --- a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml @@ -190,54 +190,54 @@ update ums_admin - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - username = #{record.username,jdbcType=VARCHAR}, + + username = #{row.username,jdbcType=VARCHAR}, - - password = #{record.password,jdbcType=VARCHAR}, + + password = #{row.password,jdbcType=VARCHAR}, - - icon = #{record.icon,jdbcType=VARCHAR}, + + icon = #{row.icon,jdbcType=VARCHAR}, - - email = #{record.email,jdbcType=VARCHAR}, + + email = #{row.email,jdbcType=VARCHAR}, - - nick_name = #{record.nickName,jdbcType=VARCHAR}, + + nick_name = #{row.nickName,jdbcType=VARCHAR}, - - note = #{record.note,jdbcType=VARCHAR}, + + note = #{row.note,jdbcType=VARCHAR}, - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + create_time = #{row.createTime,jdbcType=TIMESTAMP}, - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, + + login_time = #{row.loginTime,jdbcType=TIMESTAMP}, - - status = #{record.status,jdbcType=INTEGER}, + + status = #{row.status,jdbcType=INTEGER}, - + update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - + set id = #{row.id,jdbcType=BIGINT}, + username = #{row.username,jdbcType=VARCHAR}, + password = #{row.password,jdbcType=VARCHAR}, + icon = #{row.icon,jdbcType=VARCHAR}, + email = #{row.email,jdbcType=VARCHAR}, + nick_name = #{row.nickName,jdbcType=VARCHAR}, + note = #{row.note,jdbcType=VARCHAR}, + create_time = #{row.createTime,jdbcType=TIMESTAMP}, + login_time = #{row.loginTime,jdbcType=TIMESTAMP}, + status = #{row.status,jdbcType=INTEGER} + diff --git a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml index b8ed4900..577a5e4e 100644 --- a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml @@ -135,26 +135,26 @@ update ums_admin_role_relation - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - admin_id = #{record.adminId,jdbcType=BIGINT}, + + admin_id = #{row.adminId,jdbcType=BIGINT}, - - role_id = #{record.roleId,jdbcType=BIGINT}, + + role_id = #{row.roleId,jdbcType=BIGINT}, - + update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - + set id = #{row.id,jdbcType=BIGINT}, + admin_id = #{row.adminId,jdbcType=BIGINT}, + role_id = #{row.roleId,jdbcType=BIGINT} + diff --git a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsResourceCategoryMapper.xml b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsResourceCategoryMapper.xml index 5bec039b..41605aac 100644 --- a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsResourceCategoryMapper.xml +++ b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsResourceCategoryMapper.xml @@ -144,30 +144,30 @@ update ums_resource_category - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + create_time = #{row.createTime,jdbcType=TIMESTAMP}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - + update ums_resource_category - set id = #{record.id,jdbcType=BIGINT}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - name = #{record.name,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER} - + set id = #{row.id,jdbcType=BIGINT}, + create_time = #{row.createTime,jdbcType=TIMESTAMP}, + name = #{row.name,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER} + diff --git a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsResourceMapper.xml b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsResourceMapper.xml index 1fcb6f05..7cb7cc99 100644 --- a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsResourceMapper.xml +++ b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsResourceMapper.xml @@ -158,38 +158,38 @@ update ums_resource - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + create_time = #{row.createTime,jdbcType=TIMESTAMP}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - url = #{record.url,jdbcType=VARCHAR}, + + url = #{row.url,jdbcType=VARCHAR}, - - description = #{record.description,jdbcType=VARCHAR}, + + description = #{row.description,jdbcType=VARCHAR}, - - category_id = #{record.categoryId,jdbcType=BIGINT}, + + category_id = #{row.categoryId,jdbcType=BIGINT}, - + update ums_resource - set id = #{record.id,jdbcType=BIGINT}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - name = #{record.name,jdbcType=VARCHAR}, - url = #{record.url,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - category_id = #{record.categoryId,jdbcType=BIGINT} - + set id = #{row.id,jdbcType=BIGINT}, + create_time = #{row.createTime,jdbcType=TIMESTAMP}, + name = #{row.name,jdbcType=VARCHAR}, + url = #{row.url,jdbcType=VARCHAR}, + description = #{row.description,jdbcType=VARCHAR}, + category_id = #{row.categoryId,jdbcType=BIGINT} + diff --git a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml index 7f4596bf..b932a2ee 100644 --- a/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ b/mall-tiny-generator/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml @@ -167,42 +167,42 @@ update ums_role - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - description = #{record.description,jdbcType=VARCHAR}, + + description = #{row.description,jdbcType=VARCHAR}, - - admin_count = #{record.adminCount,jdbcType=INTEGER}, + + admin_count = #{row.adminCount,jdbcType=INTEGER}, - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + create_time = #{row.createTime,jdbcType=TIMESTAMP}, - - status = #{record.status,jdbcType=INTEGER}, + + status = #{row.status,jdbcType=INTEGER}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - + update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + description = #{row.description,jdbcType=VARCHAR}, + admin_count = #{row.adminCount,jdbcType=INTEGER}, + create_time = #{row.createTime,jdbcType=TIMESTAMP}, + status = #{row.status,jdbcType=INTEGER}, + sort = #{row.sort,jdbcType=INTEGER} + diff --git a/mall-tiny-generator/src/main/resources/generator.properties b/mall-tiny-generator/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-generator/src/main/resources/generator.properties +++ b/mall-tiny-generator/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-generator/src/main/resources/generatorConfig.xml b/mall-tiny-generator/src/main/resources/generatorConfig.xml index 1769bbe4..057a77fc 100644 --- a/mall-tiny-generator/src/main/resources/generatorConfig.xml +++ b/mall-tiny-generator/src/main/resources/generatorConfig.xml @@ -6,8 +6,11 @@ + + + @@ -17,24 +20,26 @@ - + + + - + - + - + - + - + diff --git a/mall-tiny-generator/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-generator/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-generator/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-generator/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-generator/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-generator/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-generator/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-gitlab/.gitignore b/mall-tiny-gitlab/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-gitlab/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-gitlab/.gitlab-ci.yml b/mall-tiny-gitlab/.gitlab-ci.yml deleted file mode 100644 index 43ac2531..00000000 --- a/mall-tiny-gitlab/.gitlab-ci.yml +++ /dev/null @@ -1,24 +0,0 @@ -# 打包任务 -build-job: - stage: build - # 指定标签,只要具有该标签的runner才会执行 - tags: - - docker - script: - # 使用Maven打包 - - mvn clean package - # 将jar包、Dockerfile、运行脚本复制到指定目录 - - cp target/mall-tiny-gitlab-1.0-SNAPSHOT.jar /mydata/build/mall-tiny-gitlab-1.0-SNAPSHOT.jar - - cp Dockerfile /mydata/build/Dockerfile - - cp run.sh /mydata/build/run.sh - -# 部署任务 -deploy-job: - stage: deploy - tags: - - docker - script: - # 进入指定目录并执行运行脚本 - - cd /mydata/build - - chmod +x run.sh - - ./run.sh \ No newline at end of file diff --git a/mall-tiny-gitlab/Dockerfile b/mall-tiny-gitlab/Dockerfile deleted file mode 100644 index 9dc06bd1..00000000 --- a/mall-tiny-gitlab/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# 该镜像需要依赖的基础镜像 -FROM java:8 -# 将当前目录下的jar包复制到docker容器的/目录下 -ADD mall-tiny-gitlab-1.0-SNAPSHOT.jar /app.jar -# 声明服务运行在8080端口 -EXPOSE 8088 -# 指定docker容器启动时运行jar包 -ENTRYPOINT ["java", "-jar","/app.jar"] -# 指定维护者的名字 -MAINTAINER macrozheng \ No newline at end of file diff --git a/mall-tiny-gitlab/README.md b/mall-tiny-gitlab/README.md deleted file mode 100644 index 18d28ec2..00000000 --- a/mall-tiny-gitlab/README.md +++ /dev/null @@ -1 +0,0 @@ -# Gitlab CI/CD Demo diff --git a/mall-tiny-gitlab/pom.xml b/mall-tiny-gitlab/pom.xml deleted file mode 100644 index 55b3b411..00000000 --- a/mall-tiny-gitlab/pom.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-gitlab - 1.0-SNAPSHOT - mall-tiny-gitlab - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - - spring-boot-starter-tomcat - org.springframework.boot - - - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 4.5.7 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.springframework.boot - spring-boot-starter-undertow - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-gitlab/run.sh b/mall-tiny-gitlab/run.sh deleted file mode 100644 index fef0e690..00000000 --- a/mall-tiny-gitlab/run.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -# 定义应用组名 -group_name='mall-tiny' -# 定义应用名称 -app_name='mall-tiny-gitlab' -# 定义应用版本 -app_version='1.0-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 8088:8088 --name ${app_name} \ --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-tiny-gitlab/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java deleted file mode 100644 index 2094034b..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.config; - -import lombok.Getter; -import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -/** - * 用于配置白名单资源路径 - * Created by macro on 2018/11/5. - */ -@Getter -@Setter -@Component -@ConfigurationProperties(prefix = "secure.ignored") -public class IgnoreUrlsConfig { - - private List urls = new ArrayList<>(); - -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index 6454f1ae..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.macro.mall.tiny.config; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ArrayUtil; -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - -import java.util.List; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - @Autowired - private IgnoreUrlsConfig ignoreUrlsConfig; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - List urls = ignoreUrlsConfig.getUrls(); - String[] urlArray = ArrayUtil.toArray(urls, String.class); - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET,urlArray) // 允许对于网站静态资源的无授权访问 - .permitAll() - .antMatchers(HttpMethod.POST,urlArray) // 允许对于网站静态资源的无授权访问 - .permitAll() - .antMatchers("/admin/login")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - AdminUserDetails admin = adminService.getAdminByUsername(username); - if (admin != null) { - return admin; - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 0115ca4f..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.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.*; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spi.service.contexts.SecurityContext; -import springfox.documentation.spring.web.plugins.Docket; - -import java.util.ArrayList; -import java.util.List; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - 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-tiny-gitlab/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 66508034..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index 27e9d37d..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - String token = adminService.login(username, password); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java deleted file mode 100644 index 3152ef66..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminUserDetails implements UserDetails { - private String username; - private String password; - private List authorityList; - @Override - public Collection getAuthorities() { - return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return this.password; - } - - @Override - public String getUsername() { - return this.username; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 6528582e..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminUserDetails; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUserDetails getAdminByUsername(String username); - - /** - * 用户名密码登录 - */ - String login(String username, String password); -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 45347be4..00000000 --- a/mall-tiny-gitlab/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放默认用户信息 - */ - private List adminUserDetailsList = new ArrayList<>(); - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - - @PostConstruct - private void init(){ - adminUserDetailsList.add(AdminUserDetails.builder() - .username("admin") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_ADMIN")) - .build()); - adminUserDetailsList.add(AdminUserDetails.builder() - .username("macro") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_USER")) - .build()); - } - @Override - public AdminUserDetails getAdminByUsername(String username) { - List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(findList)){ - return findList.get(0); - } - return null; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = getAdminByUsername(username); - if(userDetails==null){ - return token; - } - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - log.warn("登录异常:{}", e.getMessage()); - } - return token; - } -} diff --git a/mall-tiny-gitlab/src/main/resources/application-prod.yml b/mall-tiny-gitlab/src/main/resources/application-prod.yml deleted file mode 100644 index 33237333..00000000 --- a/mall-tiny-gitlab/src/main/resources/application-prod.yml +++ /dev/null @@ -1,51 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://192.168.7.134:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -springfox: - documentation: - enabled: true - - -secure: - ignored: - urls: - - / - - /swagger-ui/ - - /*.html - - /favicon.ico - - /**/*.html - - /**/*.css - - /**/*.js - - /swagger-resources/** - - /v2/api-docs/** - - /actuator/** - -management: - endpoints: - web: - exposure: - include: '*' - endpoint: - shutdown: - enabled: true -logging: - level: - com.macro.mall.tiny: debug diff --git a/mall-tiny-gitlab/src/main/resources/application.yml b/mall-tiny-gitlab/src/main/resources/application.yml deleted file mode 100644 index dcf6115c..00000000 --- a/mall-tiny-gitlab/src/main/resources/application.yml +++ /dev/null @@ -1,51 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -springfox: - documentation: - enabled: true - - -secure: - ignored: - urls: - - / - - /swagger-ui/ - - /*.html - - /favicon.ico - - /**/*.html - - /**/*.css - - /**/*.js - - /swagger-resources/** - - /v2/api-docs/** - - /actuator/** - -management: - endpoints: - web: - exposure: - include: '*' - endpoint: - shutdown: - enabled: true -logging: - level: - com.macro.mall.tiny: debug diff --git a/mall-tiny-gitlab/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-gitlab/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-gitlab/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-gitlab/src/main/resources/generator.properties b/mall-tiny-gitlab/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-gitlab/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-gitlab/src/main/resources/generatorConfig.xml b/mall-tiny-gitlab/src/main/resources/generatorConfig.xml deleted file mode 100644 index 1928ae6c..00000000 --- a/mall-tiny-gitlab/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-gitlab/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-gitlab/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index 6675173d..00000000 --- a/mall-tiny-gitlab/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.macro.mall.tiny; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import lombok.extern.log4j.Log4j; -import lombok.extern.slf4j.Slf4j; -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.test.context.junit4.SpringRunner; - -import java.util.List; - -@RunWith(SpringRunner.class) -@SpringBootTest -@Slf4j -public class MallTinyApplicationTests { - @Autowired - private PmsBrandService pmsBrandService; - - @Test - public void contextLoads() { - } - - @Test - public void testMethod() { - List brandList = pmsBrandService.listAllBrand(); - log.info("testMethod:{}", brandList); - } - -} diff --git a/mall-tiny-grafana/.gitignore b/mall-tiny-grafana/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-grafana/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-grafana/pom.xml b/mall-tiny-grafana/pom.xml deleted file mode 100644 index cc23517a..00000000 --- a/mall-tiny-grafana/pom.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-grafana - 1.0-SNAPSHOT - mall-tiny-grafana - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - io.micrometer - micrometer-registry-prometheus - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - com.spotify - docker-maven-plugin - 1.1.0 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - http://192.168.5.78:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - - - diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-grafana/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-grafana/src/main/resources/application.yml b/mall-tiny-grafana/src/main/resources/application.yml deleted file mode 100644 index f004eeb8..00000000 --- a/mall-tiny-grafana/src/main/resources/application.yml +++ /dev/null @@ -1,30 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://192.168.5.78:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - application: - name: mall-tiny-grafana - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -management: - endpoints: - web: - exposure: - # 暴露端点`/actuator/prometheus` - include: 'prometheus' - metrics: - tags: - application: ${spring.application.name} - -logging: - level: - com.macro.mall.tiny: debug - diff --git a/mall-tiny-grafana/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-grafana/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-grafana/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-grafana/src/main/resources/generator.properties b/mall-tiny-grafana/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-grafana/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-grafana/src/main/resources/generatorConfig.xml b/mall-tiny-grafana/src/main/resources/generatorConfig.xml deleted file mode 100644 index f553a395..00000000 --- a/mall-tiny-grafana/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-grafana/src/main/resources/prometheus.yml b/mall-tiny-grafana/src/main/resources/prometheus.yml deleted file mode 100644 index e7a51cc5..00000000 --- a/mall-tiny-grafana/src/main/resources/prometheus.yml +++ /dev/null @@ -1,18 +0,0 @@ -global: - scrape_interval: 5s - -scrape_configs: - - job_name: node - static_configs: - - targets: ['192.168.5.78:9100'] - # 采集任务名称 - - job_name: 'mall-tiny-grafana' - # 采集时间间隔 - scrape_interval: 5s - # 采集超时时间 - scrape_timeout: 10s - # 采集数据路径 - metrics_path: '/actuator/prometheus' - # 采集服务的地址 - static_configs: - - targets: ['192.168.5.78:8088'] \ No newline at end of file diff --git a/mall-tiny-grafana/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-grafana/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-grafana/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-grafana/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-grafana/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-grafana/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-http-interface/.gitignore b/mall-tiny-http-interface/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-http-interface/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-http-interface/pom.xml b/mall-tiny-http-interface/pom.xml deleted file mode 100644 index bd99883c..00000000 --- a/mall-tiny-http-interface/pom.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-http-interface - 1.0-SNAPSHOT - mall-tiny-http-interface - Demo project for Spring Boot - - - UTF-8 - UTF-8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 3.0.0 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-webflux - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index 7c627027..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/component/TokenHolder.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/component/TokenHolder.java deleted file mode 100644 index 83e57f11..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/component/TokenHolder.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.component; - -import jakarta.servlet.http.HttpServletRequest; -import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - - -/** - * 登录token存储(在Session中) - * Created by macro on 2022/1/19. - */ -@Component -public class TokenHolder { - /** - * 添加token - */ - public void putToken(String token) { - RequestAttributes ra = RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = ((ServletRequestAttributes) ra).getRequest(); - request.getSession().setAttribute("token", token); - } - - /** - * 获取token - */ - public String getToken() { - RequestAttributes ra = RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = ((ServletRequestAttributes) ra).getRequest(); - Object token = request.getSession().getAttribute("token"); - if(token!=null){ - return (String) token; - } - return null; - } - -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/config/HttpInterfaceConfig.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/config/HttpInterfaceConfig.java deleted file mode 100644 index 41048793..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/config/HttpInterfaceConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.TokenHolder; -import com.macro.mall.tiny.remote.PmsBrandApi; -import com.macro.mall.tiny.remote.UmsAdminApi; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.reactive.function.client.ClientRequest; -import org.springframework.web.reactive.function.client.WebClient; -import org.springframework.web.reactive.function.client.support.WebClientAdapter; -import org.springframework.web.service.invoker.HttpServiceProxyFactory; - -@Configuration -public class HttpInterfaceConfig { - - @Value("${remote.baseUrl}") - private String baseUrl; - @Autowired - private TokenHolder tokenHolder; - - @Bean - WebClient webClient() { - return WebClient.builder() - //添加全局默认请求头 - .defaultHeader("source", "http-interface") - //给请求添加过滤器,添加自定义的认证头 - .filter((request, next) -> { - ClientRequest filtered = ClientRequest.from(request) - .header("Authorization", tokenHolder.getToken()) - .build(); - return next.exchange(filtered); - }) - .baseUrl(baseUrl).build(); - } - - @Bean - UmsAdminApi umsAdminApi(WebClient client) { - HttpServiceProxyFactory factory = HttpServiceProxyFactory.builder(WebClientAdapter.forClient(client)).build(); - return factory.createClient(UmsAdminApi.class); - } - - @Bean - PmsBrandApi pmsBrandApi(WebClient client) { - HttpServiceProxyFactory factory = HttpServiceProxyFactory.builder(WebClientAdapter.forClient(client)).build(); - return factory.createClient(PmsBrandApi.class); - } -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index bef814fc..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.ReflectionUtils; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Contact; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; -import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; - -import java.lang.reflect.Field; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .version("1.0") - .build(); - } - - @Bean - public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { - return new BeanPostProcessor() { - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { - customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); - } - return bean; - } - - private void customizeSpringfoxHandlerMappings(List mappings) { - List copy = mappings.stream() - .filter(mapping -> mapping.getPatternParser() == null) - .collect(Collectors.toList()); - mappings.clear(); - mappings.addAll(copy); - } - - @SuppressWarnings("unchecked") - private List getHandlerMappings(Object bean) { - try { - Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); - field.setAccessible(true); - return (List) field.get(bean); - } catch (IllegalArgumentException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - }; - } - -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/controller/HttpInterfaceController.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/controller/HttpInterfaceController.java deleted file mode 100644 index 86493acc..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/controller/HttpInterfaceController.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.component.TokenHolder; -import com.macro.mall.tiny.domain.LoginInfo; -import com.macro.mall.tiny.domain.PmsBrand; -import com.macro.mall.tiny.remote.PmsBrandApi; -import com.macro.mall.tiny.remote.UmsAdminApi; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -/** - * HttpInterface测试接口 - * Created by macro on 2022/1/19. - */ -@RestController -@Api(tags = "HttpInterfaceController") -@Tag(name = "HttpInterfaceController", description = "HttpInterface测试接口") -@RequestMapping("/remote") -public class HttpInterfaceController { - - @Autowired - private UmsAdminApi umsAdminApi; - @Autowired - private PmsBrandApi pmsBrandApi; - @Autowired - private TokenHolder tokenHolder; - - @ApiOperation(value = "调用远程登录接口获取token") - @PostMapping(value = "/admin/login") - public CommonResult login(@RequestParam String username, @RequestParam String password) { - CommonResult result = umsAdminApi.login(username, password); - LoginInfo loginInfo = result.getData(); - if (result.getData() != null) { - tokenHolder.putToken(loginInfo.getTokenHead() + " " + loginInfo.getToken()); - } - return result; - } - - @ApiOperation("调用远程接口分页查询品牌列表") - @GetMapping(value = "/brand/list") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - return pmsBrandApi.list(pageNum, pageSize); - } - - @ApiOperation("调用远程接口获取指定id的品牌详情") - @GetMapping(value = "/brand/{id}") - public CommonResult brand(@PathVariable("id") Long id) { - return pmsBrandApi.detail(id); - } - - @ApiOperation("调用远程接口添加品牌") - @PostMapping(value = "/brand/create") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - return pmsBrandApi.create(pmsBrand); - } - - @ApiOperation("调用远程接口更新指定id品牌信息") - @PostMapping(value = "/brand/update/{id}") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrand) { - return pmsBrandApi.update(id,pmsBrand); - } - - @ApiOperation("调用远程接口删除指定id的品牌") - @GetMapping(value = "/delete/{id}") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - return pmsBrandApi.delete(id); - } -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/domain/LoginInfo.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/domain/LoginInfo.java deleted file mode 100644 index 15864ac7..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/domain/LoginInfo.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 登录信息封装 - * Created by macro on 2022/1/19. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class LoginInfo { - //登录token - private String token; - //登录token前缀 - private String tokenHead; -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java deleted file mode 100644 index 53858ae9..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.domain; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -@Data -@EqualsAndHashCode(callSuper = false) -public class PmsBrand { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; -} \ No newline at end of file diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/remote/PmsBrandApi.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/remote/PmsBrandApi.java deleted file mode 100644 index 928b5cf9..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/remote/PmsBrandApi.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.remote; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.PmsBrand; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.service.annotation.GetExchange; -import org.springframework.web.service.annotation.HttpExchange; -import org.springframework.web.service.annotation.PostExchange; - -/** - * 定义Http接口,用于调用远程的PmsBrand服务 - * Created by macro on 2022/1/19. - */ -@HttpExchange -public interface PmsBrandApi { - @GetExchange("brand/list") - CommonResult> list(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize); - - @GetExchange("brand/{id}") - CommonResult detail(@PathVariable("id") Long id); - - @PostExchange("brand/create") - CommonResult create(@RequestBody PmsBrand pmsBrand); - - @PostExchange("brand/update/{id}") - CommonResult update(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrand); - - @GetExchange("brand/delete/{id}") - CommonResult delete(@PathVariable("id") Long id); -} diff --git a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/remote/UmsAdminApi.java b/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/remote/UmsAdminApi.java deleted file mode 100644 index da89ab3a..00000000 --- a/mall-tiny-http-interface/src/main/java/com/macro/mall/tiny/remote/UmsAdminApi.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.remote; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.LoginInfo; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.service.annotation.HttpExchange; -import org.springframework.web.service.annotation.PostExchange; - - -/** - * 定义Http接口,用于调用远程的UmsAdmin服务 - * Created by macro on 2022/1/19. - */ -@HttpExchange -public interface UmsAdminApi { - - @PostExchange("admin/login") - CommonResult login(@RequestParam("username") String username, @RequestParam("password") String password); -} diff --git a/mall-tiny-http-interface/src/main/resources/application.yml b/mall-tiny-http-interface/src/main/resources/application.yml deleted file mode 100644 index 276411a4..00000000 --- a/mall-tiny-http-interface/src/main/resources/application.yml +++ /dev/null @@ -1,12 +0,0 @@ -server: - port: 8086 - mvc: - pathmatch: - matching-strategy: ANT_PATH_MATCHER - -springfox: - documentation: - enabled: true - -remote: - baseUrl: http://localhost:8088/ \ No newline at end of file diff --git a/mall-tiny-http-interface/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-http-interface/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index 6cc0126f..00000000 --- a/mall-tiny-http-interface/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.LoginInfo; -import com.macro.mall.tiny.remote.UmsAdminApi; -import lombok.extern.slf4j.Slf4j; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -@Slf4j -@SpringBootTest -public class MallTinyApplicationTests { - - @Autowired - private UmsAdminApi adminApi; - - @Test - public void contextLoads() { - CommonResult loginInfo = adminApi.login("admin", "123456"); - log.info("result:{}", JSONUtil.toJsonStr(loginInfo)); - } - -} diff --git a/mall-tiny-hutool/pom.xml b/mall-tiny-hutool/pom.xml index 2454898c..d8c4ef64 100644 --- a/mall-tiny-hutool/pom.xml +++ b/mall-tiny-hutool/pom.xml @@ -2,80 +2,39 @@ 4.0.0 - com.macro.mall + mall-tiny-hutool - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-hutool Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + org.springframework.boot spring-boot-starter-web - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - org.springframework.boot spring-boot-starter-test test - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.7 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} cn.hutool hutool-all - 5.4.0 + ${hutool.version} diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 3918a401..5873c675 100644 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,32 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置 + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } @@ -35,8 +42,41 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/controller/HutoolController.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/controller/HutoolController.java index de2760c2..5e32d989 100644 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/controller/HutoolController.java +++ b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/controller/HutoolController.java @@ -16,14 +16,16 @@ import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.digest.BCrypt; import cn.hutool.crypto.digest.DigestUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONUtil; import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; +import com.macro.mall.tiny.domain.PmsBrand; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -39,10 +41,14 @@ import java.util.*; /** - * Created by macro on 2019/9/1. + * @auther macrozheng + * @description Hutool工具类测试 + * @date 2019/9/1 + * @github https://github.com/macrozheng */ -@Api(tags = "HutoolController", description = "Hutool工具类测试") @RestController +@Api(tags = "HutoolController") +@Tag(name = "HutoolController", description = "Hutool工具类测试") @RequestMapping("/hutool") public class HutoolController { @@ -110,7 +116,7 @@ public CommonResult strUtil() { //格式化字符串 String template = "这只是个占位符:{}"; String str2 = StrUtil.format(template, "我是占位符"); - LOGGER.info("/strUtil format:{}", str2); + LOGGER.info("strUtil format:{}", str2); return CommonResult.success(null, "操作成功"); } @@ -121,7 +127,7 @@ public CommonResult classPath() throws IOException { ClassPathResource resource = new ClassPathResource("generator.properties"); Properties properties = new Properties(); properties.load(resource.getStream()); - LOGGER.info("/classPath:{}", properties); + LOGGER.info("classPath:{}", properties); return CommonResult.success(null, "操作成功"); } @@ -135,7 +141,7 @@ public CommonResult reflectUtil() { //使用反射来创建对象 PmsBrand pmsBrand = ReflectUtil.newInstance(PmsBrand.class); //反射执行对象的方法 - ReflectUtil.invoke(pmsBrand, "setId", 1); + ReflectUtil.invoke(pmsBrand, "setId", 1L); return CommonResult.success(null, "操作成功"); } @@ -171,7 +177,7 @@ public CommonResult beanUtil() { Map map = BeanUtil.beanToMap(brand); LOGGER.info("beanUtil bean to map:{}", map); //Map转Bean - PmsBrand mapBrand = BeanUtil.mapToBean(map, PmsBrand.class, false); + PmsBrand mapBrand = BeanUtil.toBean(map, PmsBrand.class); LOGGER.info("beanUtil map to bean:{}", mapBrand); //Bean属性拷贝 PmsBrand copyBrand = new PmsBrand(); @@ -192,8 +198,7 @@ public CommonResult collUtil() { //将以连接符号分隔的字符串再转换为列表 List splitList = StrUtil.split(joinStr, ','); LOGGER.info("collUtil split:{}", splitList); - //创建新的Map、Set、List - HashMap newMap = CollUtil.newHashMap(); + //创建新的Set、List HashSet newHashSet = CollUtil.newHashSet(); ArrayList newList = CollUtil.newArrayList(); //判断列表是否为空 @@ -224,8 +229,8 @@ public CommonResult annotationUtil() { Annotation[] annotationList = AnnotationUtil.getAnnotations(HutoolController.class, false); LOGGER.info("annotationUtil annotations:{}", annotationList); //获取指定类型注解 - Api api = AnnotationUtil.getAnnotation(HutoolController.class, Api.class); - LOGGER.info("annotationUtil api value:{}", api.description()); + Tag tag = AnnotationUtil.getAnnotation(HutoolController.class, Tag.class); + LOGGER.info("annotationUtil tag value:{}", tag.description()); //获取指定类型注解的值 Object annotationValue = AnnotationUtil.getAnnotationValue(HutoolController.class, RequestMapping.class); LOGGER.info("annotationUtil annotationValue:{}", annotationValue); @@ -264,6 +269,19 @@ public CommonResult secureUtil() { return CommonResult.success(null, "操作成功"); } + @ApiOperation("BCrypt使用:BCrypt加密工具类") + @GetMapping("/bCrypt") + public CommonResult bCrypt() { + //BCrypt加密 + String str = "123456"; + String bCryptStr = BCrypt.hashpw(str); + LOGGER.info("bCrypt hashpw:{}", bCryptStr); + //BCrypt校验 + boolean result = BCrypt.checkpw(str, bCryptStr); + LOGGER.info("bCrypt checkpw:{}", result); + return CommonResult.success(null, "操作成功"); + } + @ApiOperation("CaptchaUtil使用:图形验证码") @GetMapping("/captchaUtil") public void captchaUtil(HttpServletRequest request, HttpServletResponse response) { diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java new file mode 100644 index 00000000..e09d7a07 --- /dev/null +++ b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java @@ -0,0 +1,148 @@ +package com.macro.mall.tiny.domain; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class PmsBrand implements Serializable { + private Long id; + + private String name; + + @ApiModelProperty(value = "首字母") + private String firstLetter; + + private Integer sort; + + @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") + private Integer factoryStatus; + + private Integer showStatus; + + @ApiModelProperty(value = "产品数量") + private Integer productCount; + + @ApiModelProperty(value = "产品评论数量") + private Integer productCommentCount; + + @ApiModelProperty(value = "品牌logo") + private String logo; + + @ApiModelProperty(value = "专区大图") + private String bigPic; + + @ApiModelProperty(value = "品牌故事") + private String brandStory; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getFirstLetter() { + return firstLetter; + } + + public void setFirstLetter(String firstLetter) { + this.firstLetter = firstLetter; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Integer getFactoryStatus() { + return factoryStatus; + } + + public void setFactoryStatus(Integer factoryStatus) { + this.factoryStatus = factoryStatus; + } + + public Integer getShowStatus() { + return showStatus; + } + + public void setShowStatus(Integer showStatus) { + this.showStatus = showStatus; + } + + public Integer getProductCount() { + return productCount; + } + + public void setProductCount(Integer productCount) { + this.productCount = productCount; + } + + public Integer getProductCommentCount() { + return productCommentCount; + } + + public void setProductCommentCount(Integer productCommentCount) { + this.productCommentCount = productCommentCount; + } + + public String getLogo() { + return logo; + } + + public void setLogo(String logo) { + this.logo = logo; + } + + public String getBigPic() { + return bigPic; + } + + public void setBigPic(String bigPic) { + this.bigPic = bigPic; + } + + public String getBrandStory() { + return brandStory; + } + + public void setBrandStory(String brandStory) { + this.brandStory = brandStory; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", name=").append(name); + sb.append(", firstLetter=").append(firstLetter); + sb.append(", sort=").append(sort); + sb.append(", factoryStatus=").append(factoryStatus); + sb.append(", showStatus=").append(showStatus); + sb.append(", productCount=").append(productCount); + sb.append(", productCommentCount=").append(productCommentCount); + sb.append(", logo=").append(logo); + sb.append(", bigPic=").append(bigPic); + sb.append(", brandStory=").append(brandStory); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 37d62163..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - long countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-hutool/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-hutool/src/main/resources/application.yml b/mall-tiny-hutool/src/main/resources/application.yml index 5edcbdbc..65710c9b 100644 --- a/mall-tiny-hutool/src/main/resources/application.yml +++ b/mall-tiny-hutool/src/main/resources/application.yml @@ -2,12 +2,6 @@ server: port: 8080 spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml + mvc: + pathmatch: + matching-strategy: ant_path_matcher \ No newline at end of file diff --git a/mall-tiny-hutool/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-hutool/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 51b5436b..00000000 --- a/mall-tiny-hutool/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-hutool/src/main/resources/generator.properties b/mall-tiny-hutool/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-hutool/src/main/resources/generator.properties +++ b/mall-tiny-hutool/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-hutool/src/main/resources/generatorConfig.xml b/mall-tiny-hutool/src/main/resources/generatorConfig.xml deleted file mode 100644 index ae98a664..00000000 --- a/mall-tiny-hutool/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-hutool/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-hutool/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-hutool/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-hutool/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-jenkins/pom.xml b/mall-tiny-jenkins/pom.xml index 28489500..3f96ba5d 100644 --- a/mall-tiny-jenkins/pom.xml +++ b/mall-tiny-jenkins/pom.xml @@ -2,6 +2,7 @@ 4.0.0 + com.macro.mall mall-tiny-jenkins 1.0-SNAPSHOT @@ -13,14 +14,34 @@ UTF-8 1.8 true + http://192.168.3.101:2375 + 0.40.2 + 1.4.5 + 5.3.2 + 1.2.14 + 5.8.9 + 3.0.0 + 1.6.0 + 1.6.0 + 1.4.1 + 3.5.10 + 2.2.2 + 8.0.29 + 2.7.5 + 0.9.1 + 2.5.0 + 7.2 + 8.4.5 + 2.3.1 org.springframework.boot spring-boot-starter-parent - 2.1.3.RELEASE + 2.7.5 + @@ -44,36 +65,49 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + cn.hutool + hutool-all + ${hutool.version} + + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} + + + + javax.xml.bind + jaxb-api + ${jaxb-api.version} @@ -84,10 +118,11 @@ spring-boot-maven-plugin - com.spotify + io.fabric8 docker-maven-plugin - 1.1.0 + ${docker.maven.plugin.version} + build-image package @@ -97,18 +132,33 @@ - mall-tiny/${project.artifactId}:${project.version} - http://192.168.6.132:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - + + ${docker.host} + + + + mall-tiny/${project.name}:${project.version} + + + + openjdk:8 + + ${project.build.finalName}.jar + + + + + / + + artifact + + + ["java", "-jar","-Dspring.profiles.active=prod","/${project.build.finalName}.jar"] + + macrozheng + + + diff --git a/mall-tiny-jenkins/src/main/docker/Dockerfile b/mall-tiny-jenkins/src/main/docker/Dockerfile new file mode 100644 index 00000000..188daa59 --- /dev/null +++ b/mall-tiny-jenkins/src/main/docker/Dockerfile @@ -0,0 +1,10 @@ +# 该镜像需要依赖的基础镜像 +FROM openjdk:8 +# 将当前目录下的jar包复制到docker容器的/目录下 +ADD mall-tiny-docker-1.0-SNAPSHOT.jar /mall-tiny-docker-1.0-SNAPSHOT.jar +# 声明服务运行在8080端口 +EXPOSE 8080 +# 指定docker容器启动时运行jar包 +ENTRYPOINT ["java", "-jar","-Dspring.profiles.active=prod","/mall-tiny-docker-1.0-SNAPSHOT.jar"] +# 指定维护者的名字 +MAINTAINER macrozheng \ No newline at end of file diff --git a/mall-tiny-jenkins/src/main/docker/docker-compose.yml b/mall-tiny-jenkins/src/main/docker/docker-compose.yml new file mode 100644 index 00000000..0020d6d0 --- /dev/null +++ b/mall-tiny-jenkins/src/main/docker/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3' +services: + # 指定服务名称 + db: + # 指定服务使用的镜像 + image: mysql:5.7 + # 指定容器名称 + container_name: mysql + # 指定服务运行的端口 + ports: + - 3306:3306 + # 指定容器中需要挂载的文件 + volumes: + - /mydata/mysql/log:/var/log/mysql + - /mydata/mysql/data:/var/lib/mysql + - /mydata/mysql/conf:/etc/mysql + # 指定容器的环境变量 + environment: + - MYSQL_ROOT_PASSWORD=root + # 指定服务名称 + mall-tiny-docker: + # 指定服务使用的镜像 + image: mall-tiny/mall-tiny-docker:1.0-SNAPSHOT + # 指定容器名称 + container_name: mall-tiny-docker + # 指定服务运行的端口 + ports: + - 8080:8080 + # 指定容器中需要挂载的文件 + volumes: + - /etc/localtime:/etc/localtime + - /mydata/app/mall-tiny-docker/logs:/var/logs \ No newline at end of file diff --git a/mall-tiny-jenkins/src/main/docker/mall-tiny-jenkins.sh b/mall-tiny-jenkins/src/main/docker/mall-tiny-jenkins.sh new file mode 100644 index 00000000..d8922f8a --- /dev/null +++ b/mall-tiny-jenkins/src/main/docker/mall-tiny-jenkins.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +app_name='mall-tiny-jenkins' +docker stop ${app_name} +echo '----stop container----' +docker rm ${app_name} +echo '----rm container----' +docker rmi `docker images | grep none | awk '{print $3}'` +echo '----rm none images----' +docker run -p 8088:8088 --name ${app_name} \ +--link mysql:db \ +-v /etc/localtime:/etc/localtime \ +-v /mydata/app/${app_name}/logs:/var/logs \ +-d mall-tiny/${app_name}:1.0-SNAPSHOT +echo '----start container----' \ No newline at end of file diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ec54365e 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.mbg.mapper") diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 3918a401..caa97432 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,32 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger相关配置 + * @date 2022/11/23 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } @@ -35,8 +42,42 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + } diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 857c9eca..6d3295e5 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,11 +19,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..e3581bd5 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -17,6 +17,7 @@ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +36,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +67,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java index 617584fb..408d4737 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -6,15 +6,15 @@ import org.apache.ibatis.annotations.Param; public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); + long countByExample(PmsBrandExample example); int deleteByExample(PmsBrandExample example); int deleteByPrimaryKey(Long id); - int insert(PmsBrand record); + int insert(PmsBrand row); - int insertSelective(PmsBrand record); + int insertSelective(PmsBrand row); List selectByExampleWithBLOBs(PmsBrandExample example); @@ -22,15 +22,15 @@ public interface PmsBrandMapper { PmsBrand selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByPrimaryKeySelective(PmsBrand record); + int updateByPrimaryKeySelective(PmsBrand row); - int updateByPrimaryKeyWithBLOBs(PmsBrand record); + int updateByPrimaryKeyWithBLOBs(PmsBrand row); - int updateByPrimaryKey(PmsBrand record); + int updateByPrimaryKey(PmsBrand row); } \ No newline at end of file diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java index 0d5dde95..5750cd16 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java @@ -4,18 +4,22 @@ import java.io.Serializable; public class PmsBrand implements Serializable { + @ApiModelProperty(value = "主键ID") private Long id; + @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "首字母") private String firstLetter; + @ApiModelProperty(value = "排序") private Integer sort; @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") private Integer factoryStatus; + @ApiModelProperty(value = "是否显示") private Integer showStatus; @ApiModelProperty(value = "产品数量") diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java index 4e4a1108..c7e5880b 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -11,7 +11,7 @@ public class PmsBrandExample { protected List oredCriteria; public PmsBrandExample() { - oredCriteria = new ArrayList(); + oredCriteria = new ArrayList<>(); } public void setOrderByClause(String orderByClause) { @@ -68,7 +68,7 @@ protected abstract static class GeneratedCriteria { protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -746,7 +746,6 @@ public Criteria andBigPicNotBetween(String value1, String value2) { } public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-jenkins/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-jenkins/src/main/resources/application-dev.yml b/mall-tiny-jenkins/src/main/resources/application-dev.yml deleted file mode 100644 index 78e3911d..00000000 --- a/mall-tiny-jenkins/src/main/resources/application-dev.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-jenkins/src/main/resources/application-prod.yml b/mall-tiny-jenkins/src/main/resources/application-prod.yml index ab84996a..fb9fd475 100644 --- a/mall-tiny-jenkins/src/main/resources/application-prod.yml +++ b/mall-tiny-jenkins/src/main/resources/application-prod.yml @@ -1,5 +1,8 @@ +server: + port: 8088 + spring: datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://db:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root diff --git a/mall-tiny-jenkins/src/main/resources/application-qa.yml b/mall-tiny-jenkins/src/main/resources/application-qa.yml deleted file mode 100644 index ab84996a..00000000 --- a/mall-tiny-jenkins/src/main/resources/application-qa.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - datasource: - url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root diff --git a/mall-tiny-jenkins/src/main/resources/application.yml b/mall-tiny-jenkins/src/main/resources/application.yml index 14f3e74c..a85a0ee9 100644 --- a/mall-tiny-jenkins/src/main/resources/application.yml +++ b/mall-tiny-jenkins/src/main/resources/application.yml @@ -2,11 +2,15 @@ server: port: 8088 spring: - profiles: - active: dev + datasource: + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + username: root + password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml - diff --git a/mall-tiny-jenkins/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-jenkins/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml index 1842e269..8d47261a 100644 --- a/mall-tiny-jenkins/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ b/mall-tiny-jenkins/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -212,7 +212,7 @@ - select count(*) from pms_brand @@ -221,74 +221,74 @@ update pms_brand - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, - - show_status = #{record.showStatus,jdbcType=INTEGER}, + + show_status = #{row.showStatus,jdbcType=INTEGER}, - - product_count = #{record.productCount,jdbcType=INTEGER}, + + product_count = #{row.productCount,jdbcType=INTEGER}, - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, - - logo = #{record.logo,jdbcType=VARCHAR}, + + logo = #{row.logo,jdbcType=VARCHAR}, - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, - + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + diff --git a/mall-tiny-jenkins/src/main/resources/generator.properties b/mall-tiny-jenkins/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-jenkins/src/main/resources/generator.properties +++ b/mall-tiny-jenkins/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-jenkins/src/main/resources/generatorConfig.xml b/mall-tiny-jenkins/src/main/resources/generatorConfig.xml index f065a987..7694de64 100644 --- a/mall-tiny-jenkins/src/main/resources/generatorConfig.xml +++ b/mall-tiny-jenkins/src/main/resources/generatorConfig.xml @@ -6,33 +6,40 @@ + + + + + - + + + - + - + - + - + - + diff --git a/mall-tiny-jenkins/src/main/resources/mall-tiny-jenkins.sh b/mall-tiny-jenkins/src/main/resources/mall-tiny-jenkins.sh deleted file mode 100644 index 45de55e9..00000000 --- a/mall-tiny-jenkins/src/main/resources/mall-tiny-jenkins.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash -app_name='mall-tiny-jenkins' -docker stop ${app_name} -echo '----stop container----' -docker rm ${app_name} -echo '----rm container----' -docker run -p 8088:8088 --name ${app_name} \ ---link mysql:db \ --v /etc/localtime:/etc/localtime \ --v /mydata/app/${app_name}/logs:/var/logs \ --d mall-tiny/${app_name}:1.0-SNAPSHOT -echo '----start container----' \ No newline at end of file diff --git a/mall-tiny-jenkins/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-jenkins/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-jenkins/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-jenkins/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-jenkins/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-jenkins/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-jenkins/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-jwt/.gitignore b/mall-tiny-jwt/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-jwt/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-jwt/pom.xml b/mall-tiny-jwt/pom.xml deleted file mode 100644 index e55e397b..00000000 --- a/mall-tiny-jwt/pom.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-jwt - 1.0-SNAPSHOT - mall-tiny-jwt - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - cn.hutool - hutool-all - 4.5.7 - - - - org.projectlombok - lombok - true - - - - com.nimbusds - nimbus-jose-jwt - 8.16 - - - - org.springframework.security - spring-security-rsa - 1.0.7.RELEASE - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/controller/JwtTokenController.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/controller/JwtTokenController.java deleted file mode 100644 index 96a9f382..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/controller/JwtTokenController.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.macro.mall.tiny.controller; - -import cn.hutool.crypto.SecureUtil; -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.PayloadDto; -import com.macro.mall.tiny.service.JwtTokenService; -import com.nimbusds.jose.JOSEException; -import com.nimbusds.jose.jwk.JWKSet; -import com.nimbusds.jose.jwk.RSAKey; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.text.ParseException; - -/** - * JWT令牌管理Controller - * Created by macro on 2020/6/22. - */ -@Api(tags = "JwtTokenController", description = "JWT令牌管理") -@Controller -@RequestMapping("/token") -public class JwtTokenController { - - @Autowired - private JwtTokenService jwtTokenService; - - @ApiOperation("使用对称加密(HMAC)算法生成token") - @RequestMapping(value = "/hmac/generate", method = RequestMethod.GET) - @ResponseBody - public CommonResult generateTokenByHMAC() { - try { - PayloadDto payloadDto = jwtTokenService.getDefaultPayloadDto(); - String token = jwtTokenService.generateTokenByHMAC(JSONUtil.toJsonStr(payloadDto), SecureUtil.md5("test")); - return CommonResult.success(token); - } catch (JOSEException e) { - e.printStackTrace(); - } - return CommonResult.failed(); - } - - @ApiOperation("使用对称加密(HMAC)算法验证token") - @RequestMapping(value = "/hmac/verify", method = RequestMethod.GET) - @ResponseBody - public CommonResult verifyTokenByHMAC(String token) { - try { - PayloadDto payloadDto = jwtTokenService.verifyTokenByHMAC(token, SecureUtil.md5("test")); - return CommonResult.success(payloadDto); - } catch (ParseException | JOSEException e) { - e.printStackTrace(); - } - return CommonResult.failed(); - - } - - @ApiOperation("使用非对称加密(RSA)算法生成token") - @RequestMapping(value = "/rsa/generate", method = RequestMethod.GET) - @ResponseBody - public CommonResult generateTokenByRSA() { - try { - PayloadDto payloadDto = jwtTokenService.getDefaultPayloadDto(); - String token = jwtTokenService.generateTokenByRSA(JSONUtil.toJsonStr(payloadDto),jwtTokenService.getDefaultRSAKey()); - return CommonResult.success(token); - } catch (JOSEException e) { - e.printStackTrace(); - } - return CommonResult.failed(); - } - - @ApiOperation("使用非对称加密(RSA)算法验证token") - @RequestMapping(value = "/rsa/verify", method = RequestMethod.GET) - @ResponseBody - public CommonResult verifyTokenByRSA(String token) { - try { - PayloadDto payloadDto = jwtTokenService.verifyTokenByRSA(token, jwtTokenService.getDefaultRSAKey()); - return CommonResult.success(payloadDto); - } catch (ParseException | JOSEException e) { - e.printStackTrace(); - } - return CommonResult.failed(); - } - - @ApiOperation("获取非对称加密(RSA)算法公钥") - @RequestMapping(value = "/rsa/publicKey", method = RequestMethod.GET) - @ResponseBody - public Object getRSAPublicKey() { - RSAKey key = jwtTokenService.getDefaultRSAKey(); - return new JWKSet(key).toJSONObject(); - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/domain/PayloadDto.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/domain/PayloadDto.java deleted file mode 100644 index 3b468a3a..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/domain/PayloadDto.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.domain; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.List; - -/** - * Created by macro on 2020/6/22. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class PayloadDto { - @ApiModelProperty("主题") - private String sub; - @ApiModelProperty("签发时间") - private Long iat; - @ApiModelProperty("过期时间") - private Long exp; - @ApiModelProperty("JWT的ID") - private String jti; - @ApiModelProperty("用户名称") - private String username; - @ApiModelProperty("用户拥有的权限") - private List authorities; -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/exception/JwtExpiredException.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/exception/JwtExpiredException.java deleted file mode 100644 index 4eb6d74d..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/exception/JwtExpiredException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.macro.mall.tiny.exception; - -/** - * Created by macro on 2020/6/23. - */ -public class JwtExpiredException extends RuntimeException{ - public JwtExpiredException(String message) { - super(message); - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/exception/JwtInvalidException.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/exception/JwtInvalidException.java deleted file mode 100644 index 538b4320..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/exception/JwtInvalidException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.macro.mall.tiny.exception; - -/** - * Created by macro on 2020/6/23. - */ -public class JwtInvalidException extends RuntimeException{ - public JwtInvalidException(String message) { - super(message); - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/JwtTokenService.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/JwtTokenService.java deleted file mode 100644 index b0b6d6ee..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/JwtTokenService.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.PayloadDto; -import com.nimbusds.jose.JOSEException; -import com.nimbusds.jose.jwk.RSAKey; - -import java.text.ParseException; - -/** - * Created by macro on 2020/6/22. - */ -public interface JwtTokenService { - - /** - * 使用HMAC算法生成token - */ - String generateTokenByHMAC(String payloadStr, String secret) throws JOSEException; - - /** - * 使用HMAC算法校验token - */ - PayloadDto verifyTokenByHMAC(String token, String secret) throws ParseException, JOSEException; - - /** - * 使用RSA算法生成token - */ - String generateTokenByRSA(String payloadStr, RSAKey rsaKey) throws JOSEException; - - /** - * 使用RSA算法校验token - */ - PayloadDto verifyTokenByRSA(String token, RSAKey rsaKey) throws ParseException, JOSEException; - - /** - * 获取默认payload - */ - PayloadDto getDefaultPayloadDto(); - - /** - * 获取默认的RSAKey - */ - RSAKey getDefaultRSAKey(); -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/impl/JwtTokenServiceImpl.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/impl/JwtTokenServiceImpl.java deleted file mode 100644 index 5e6c8c70..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/impl/JwtTokenServiceImpl.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateUtil; -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.domain.PayloadDto; -import com.macro.mall.tiny.exception.JwtExpiredException; -import com.macro.mall.tiny.exception.JwtInvalidException; -import com.macro.mall.tiny.service.JwtTokenService; -import com.nimbusds.jose.*; -import com.nimbusds.jose.crypto.MACSigner; -import com.nimbusds.jose.crypto.MACVerifier; -import com.nimbusds.jose.crypto.RSASSASigner; -import com.nimbusds.jose.crypto.RSASSAVerifier; -import com.nimbusds.jose.jwk.RSAKey; -import org.springframework.core.io.ClassPathResource; -import org.springframework.security.rsa.crypto.KeyStoreKeyFactory; -import org.springframework.stereotype.Service; - -import java.security.KeyPair; -import java.security.interfaces.RSAPrivateKey; -import java.security.interfaces.RSAPublicKey; -import java.text.ParseException; -import java.util.Date; -import java.util.UUID; - -/** - * Created by macro on 2020/6/22. - */ -@Service -public class JwtTokenServiceImpl implements JwtTokenService { - @Override - public String generateTokenByHMAC(String payloadStr, String secret) throws JOSEException { - //创建JWS头,设置签名算法和类型 - JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.HS256). - type(JOSEObjectType.JWT) - .build(); - //将负载信息封装到Payload中 - Payload payload = new Payload(payloadStr); - //创建JWS对象 - JWSObject jwsObject = new JWSObject(jwsHeader, payload); - //创建HMAC签名器 - JWSSigner jwsSigner = new MACSigner(secret); - //签名 - jwsObject.sign(jwsSigner); - return jwsObject.serialize(); - } - - @Override - public PayloadDto verifyTokenByHMAC(String token, String secret) throws ParseException, JOSEException { - //从token中解析JWS对象 - JWSObject jwsObject = JWSObject.parse(token); - //创建HMAC验证器 - JWSVerifier jwsVerifier = new MACVerifier(secret); - if (!jwsObject.verify(jwsVerifier)) { - throw new JwtInvalidException("token签名不合法!"); - } - String payload = jwsObject.getPayload().toString(); - PayloadDto payloadDto = JSONUtil.toBean(payload, PayloadDto.class); - if (payloadDto.getExp() < new Date().getTime()) { - throw new JwtExpiredException("token已过期!"); - } - return payloadDto; - } - - @Override - public String generateTokenByRSA(String payloadStr, RSAKey rsaKey) throws JOSEException { - //创建JWS头,设置签名算法和类型 - JWSHeader jwsHeader = new JWSHeader.Builder(JWSAlgorithm.RS256) - .type(JOSEObjectType.JWT) - .build(); - //将负载信息封装到Payload中 - Payload payload = new Payload(payloadStr); - //创建JWS对象 - JWSObject jwsObject = new JWSObject(jwsHeader, payload); - //创建RSA签名器 - JWSSigner jwsSigner = new RSASSASigner(rsaKey, true); - //签名 - jwsObject.sign(jwsSigner); - return jwsObject.serialize(); - } - - @Override - public PayloadDto verifyTokenByRSA(String token, RSAKey rsaKey) throws ParseException, JOSEException { - //从token中解析JWS对象 - JWSObject jwsObject = JWSObject.parse(token); - RSAKey publicRsaKey = rsaKey.toPublicJWK(); - //使用RSA公钥创建RSA验证器 - JWSVerifier jwsVerifier = new RSASSAVerifier(publicRsaKey); - if (!jwsObject.verify(jwsVerifier)) { - throw new JwtInvalidException("token签名不合法!"); - } - String payload = jwsObject.getPayload().toString(); - PayloadDto payloadDto = JSONUtil.toBean(payload, PayloadDto.class); - if (payloadDto.getExp() < new Date().getTime()) { - throw new JwtExpiredException("token已过期!"); - } - return payloadDto; - } - - @Override - public PayloadDto getDefaultPayloadDto() { - Date now = new Date(); - Date exp = DateUtil.offsetSecond(now, 60*60); - return PayloadDto.builder() - .sub("macro") - .iat(now.getTime()) - .exp(exp.getTime()) - .jti(UUID.randomUUID().toString()) - .username("macro") - .authorities(CollUtil.toList("ADMIN")) - .build(); - } - - @Override - public RSAKey getDefaultRSAKey() { - //从classpath下获取RSA秘钥对 - KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(new ClassPathResource("jwt.jks"), "123456".toCharArray()); - KeyPair keyPair = keyStoreKeyFactory.getKeyPair("jwt", "123456".toCharArray()); - //获取RSA公钥 - RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); - //获取RSA私钥 - RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); - return new RSAKey.Builder(publicKey).privateKey(privateKey).build(); - } - -} diff --git a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-jwt/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-jwt/src/main/resources/application.yml b/mall-tiny-jwt/src/main/resources/application.yml deleted file mode 100644 index 959c3903..00000000 --- a/mall-tiny-jwt/src/main/resources/application.yml +++ /dev/null @@ -1,16 +0,0 @@ -server: - port: 8088 - -spring: - profiles: - active: dev - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - diff --git a/mall-tiny-jwt/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-jwt/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-jwt/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-jwt/src/main/resources/generator.properties b/mall-tiny-jwt/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-jwt/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-jwt/src/main/resources/generatorConfig.xml b/mall-tiny-jwt/src/main/resources/generatorConfig.xml deleted file mode 100644 index 2d4f52af..00000000 --- a/mall-tiny-jwt/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-jwt/src/main/resources/jwt.jks b/mall-tiny-jwt/src/main/resources/jwt.jks deleted file mode 100644 index 286ee653..00000000 Binary files a/mall-tiny-jwt/src/main/resources/jwt.jks and /dev/null differ diff --git a/mall-tiny-jwt/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-jwt/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-jwt/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-jwt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-jwt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-jwt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-kafka/.gitignore b/mall-tiny-kafka/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-kafka/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-kafka/pom.xml b/mall-tiny-kafka/pom.xml deleted file mode 100644 index 2b9bd83b..00000000 --- a/mall-tiny-kafka/pom.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-kafka - 1.0-SNAPSHOT - mall-tiny-kafka - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.4.5 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.kafka - spring-kafka - 2.7.1 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/component/KafkaConsumer.java b/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/component/KafkaConsumer.java deleted file mode 100644 index 43e49b50..00000000 --- a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/component/KafkaConsumer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.macro.mall.tiny.component; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.kafka.annotation.KafkaListener; -import org.springframework.stereotype.Component; - -/** - * Kafka消息消费者 - * Created by macro on 2021/5/19. - */ -@Slf4j -@Component -public class KafkaConsumer { - - @KafkaListener(topics = "bootTopic") - public void processMessage(String content) { - log.info("consumer processMessage : {}",content); - } - -} diff --git a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/component/KafkaProducer.java b/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/component/KafkaProducer.java deleted file mode 100644 index 8403687d..00000000 --- a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/component/KafkaProducer.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.component; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.kafka.core.KafkaTemplate; -import org.springframework.stereotype.Component; - -/** - * Kafka消息生产者 - * Created by macro on 2021/5/19. - */ -@Component -public class KafkaProducer { - @Autowired - private KafkaTemplate kafkaTemplate; - - public void send(String message){ - kafkaTemplate.send("bootTopic",message); - } -} diff --git a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/controller/KafkaController.java b/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/controller/KafkaController.java deleted file mode 100644 index ba30cba0..00000000 --- a/mall-tiny-kafka/src/main/java/com/macro/mall/tiny/controller/KafkaController.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.component.KafkaProducer; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -/** - * Kafka功能测试 - * Created by macro on 2021/5/19. - */ -@Api(tags = "KafkaController", description = "Kafka功能测试") -@Controller -@RequestMapping("/kafka") -public class KafkaController { - - @Autowired - private KafkaProducer kafkaProducer; - - @ApiOperation("发送消息") - @RequestMapping(value = "/sendMessage", method = RequestMethod.GET) - @ResponseBody - public CommonResult sendMessage(@RequestParam String message) { - kafkaProducer.send(message); - return CommonResult.success(null); - } -} diff --git a/mall-tiny-kafka/src/main/resources/application.yml b/mall-tiny-kafka/src/main/resources/application.yml deleted file mode 100644 index 40d1e2ba..00000000 --- a/mall-tiny-kafka/src/main/resources/application.yml +++ /dev/null @@ -1,8 +0,0 @@ -server: - port: 8088 -spring: - kafka: - bootstrap-servers: '192.168.5.78:9092' - consumer: - group-id: "bootGroup" - diff --git a/mall-tiny-keycloak/.gitignore b/mall-tiny-keycloak/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-keycloak/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-keycloak/pom.xml b/mall-tiny-keycloak/pom.xml deleted file mode 100644 index 6bf9ecd9..00000000 --- a/mall-tiny-keycloak/pom.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-keycloak - 1.0-SNAPSHOT - mall-tiny-keycloak - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - org.keycloak - keycloak-spring-boot-starter - 14.0.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index f47bcaf6..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.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.Contact; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-keycloak/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-keycloak/src/main/resources/application.yml b/mall-tiny-keycloak/src/main/resources/application.yml deleted file mode 100644 index a03fcd65..00000000 --- a/mall-tiny-keycloak/src/main/resources/application.yml +++ /dev/null @@ -1,37 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -springfox: - documentation: - enabled: true - -# Keycloak相关配置 -keycloak: - # 设置客户端所在领域 - realm: macrozheng - # 设置Keycloak认证服务访问路径 - auth-server-url: http://192.168.7.142:8080/auth - # 设置客户端ID - resource: mall-tiny-keycloak - # 设置为公开客户端,不需要秘钥即可访问 - public-client: true - # 配置角色与可访问路径的对应关系 - security-constraints: - - auth-roles: - - mall-tiny - security-collections: - - patterns: - - '/brand/*' - - '/swagger-ui/*' - diff --git a/mall-tiny-keycloak/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-keycloak/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-keycloak/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-keycloak/src/main/resources/generator.properties b/mall-tiny-keycloak/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-keycloak/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-keycloak/src/main/resources/generatorConfig.xml b/mall-tiny-keycloak/src/main/resources/generatorConfig.xml deleted file mode 100644 index 661ed4da..00000000 --- a/mall-tiny-keycloak/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-keycloak/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-keycloak/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-keycloak/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-keycloak/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-keycloak/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-keycloak/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-knife4j/.gitignore b/mall-tiny-knife4j/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-knife4j/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-knife4j/pom.xml b/mall-tiny-knife4j/pom.xml deleted file mode 100644 index 7b98b8f9..00000000 --- a/mall-tiny-knife4j/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-knife4j - 1.0-SNAPSHOT - mall-tiny-knife4j - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - com.github.xiaoymin - knife4j-spring-boot-starter - 2.0.4 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 11947b75..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; -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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -@EnableKnife4j -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .enable(true) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .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-tiny-knife4j/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index f83754e4..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @ApiOperationSupport(ignoreParameters = {"id","productCount","productCommentCount"}) - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-knife4j/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-knife4j/src/main/resources/application.yml b/mall-tiny-knife4j/src/main/resources/application.yml deleted file mode 100644 index 959c3903..00000000 --- a/mall-tiny-knife4j/src/main/resources/application.yml +++ /dev/null @@ -1,16 +0,0 @@ -server: - port: 8088 - -spring: - profiles: - active: dev - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - diff --git a/mall-tiny-knife4j/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-knife4j/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-knife4j/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-knife4j/src/main/resources/generator.properties b/mall-tiny-knife4j/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-knife4j/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-knife4j/src/main/resources/generatorConfig.xml b/mall-tiny-knife4j/src/main/resources/generatorConfig.xml deleted file mode 100644 index fcd1d4a3..00000000 --- a/mall-tiny-knife4j/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-knife4j/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-knife4j/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-knife4j/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-knife4j/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-knife4j/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-knife4j/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-log/.gitignore b/mall-tiny-log/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-log/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-log/pom.xml b/mall-tiny-log/pom.xml deleted file mode 100644 index 86dc1986..00000000 --- a/mall-tiny-log/pom.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-log - 0.0.1-SNAPSHOT - mall-tiny-log - Demo project for Spring Boot - - - 1.8 - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.7 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - cn.hutool - hutool-all - 4.5.7 - - - - net.logstash.logback - logstash-logback-encoder - 5.3 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-log/src/main/docker/docker-compose.yml b/mall-tiny-log/src/main/docker/docker-compose.yml deleted file mode 100644 index 8d6a0e0d..00000000 --- a/mall-tiny-log/src/main/docker/docker-compose.yml +++ /dev/null @@ -1,44 +0,0 @@ -version: '3' -services: - elasticsearch: - image: elasticsearch:6.4.0 - container_name: elasticsearch - environment: - - "cluster.name=elasticsearch" #设置集群名称为elasticsearch - - "discovery.type=single-node" #以单一节点模式启动 - - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小 - - TZ=Asia/Shanghai - volumes: - - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载 - - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载 - ports: - - 9200:9200 - - 9300:9300 - kibana: - image: kibana:6.4.0 - container_name: kibana - links: - - elasticsearch:es #可以用es这个域名访问elasticsearch服务 - depends_on: - - elasticsearch #kibana在elasticsearch启动之后再启动 - environment: - - "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址 - - TZ=Asia/Shanghai - ports: - - 5601:5601 - logstash: - image: logstash:6.4.0 - 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 \ No newline at end of file diff --git a/mall-tiny-log/src/main/docker/logstash.conf b/mall-tiny-log/src/main/docker/logstash.conf deleted file mode 100644 index 4d6f7596..00000000 --- a/mall-tiny-log/src/main/docker/logstash.conf +++ /dev/null @@ -1,52 +0,0 @@ -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 => ["es:9200"] - action => "index" - codec => json - index => "mall-tiny-%{type}-%{+YYYY.MM.dd}" - template_name => "mall-tiny" - } -} \ No newline at end of file diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java deleted file mode 100644 index 2d44cedd..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.URLUtil; -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.dto.WebLog; -import io.swagger.annotations.ApiOperation; -import net.logstash.logback.marker.Markers; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.Signature; -import org.aspectj.lang.annotation.*; -import org.aspectj.lang.reflect.MethodSignature; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 统一日志处理切面 - * Created by macro on 2018/4/26. - */ -@Aspect -@Component -@Order(1) -public class WebLogAspect { - private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class); - - @Pointcut("execution(public * com.macro.mall.tiny.controller.*.*(..))") - public void webLog() { - } - - @Before("webLog()") - public void doBefore(JoinPoint joinPoint) throws Throwable { - } - - @AfterReturning(value = "webLog()", returning = "ret") - public void doAfterReturning(Object ret) throws Throwable { - } - - @Around("webLog()") - public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { - long startTime = System.currentTimeMillis(); - //获取当前请求对象 - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = attributes.getRequest(); - //记录请求信息 - WebLog webLog = new WebLog(); - Object result = joinPoint.proceed(); - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - if (method.isAnnotationPresent(ApiOperation.class)) { - ApiOperation apiOperation = method.getAnnotation(ApiOperation.class); - webLog.setDescription(apiOperation.value()); - } - long endTime = System.currentTimeMillis(); - String urlStr = request.getRequestURL().toString(); - webLog.setBasePath(StrUtil.removeSuffix(urlStr, URLUtil.url(urlStr).getPath())); - webLog.setIp(request.getRemoteUser()); - webLog.setMethod(request.getMethod()); - webLog.setParameter(getParameter(method, joinPoint.getArgs())); - webLog.setResult(result); - webLog.setSpendTime((int) (endTime - startTime)); - webLog.setStartTime(startTime); - webLog.setUri(request.getRequestURI()); - webLog.setUrl(request.getRequestURL().toString()); -// LOGGER.info("{}", JSONUtil.parse(webLog)); - Map logMap = new HashMap<>(); - logMap.put("url",webLog.getUrl()); - logMap.put("method",webLog.getMethod()); - logMap.put("parameter",webLog.getParameter()); - logMap.put("spendTime",webLog.getSpendTime()); - logMap.put("description",webLog.getDescription()); - LOGGER.info(Markers.appendEntries(logMap), JSONUtil.parse(webLog).toString()); - return result; - } - - /** - * 根据方法和传入的参数获取请求参数 - */ - private Object getParameter(Method method, Object[] args) { - List argList = new ArrayList<>(); - Parameter[] parameters = method.getParameters(); - for (int i = 0; i < parameters.length; i++) { - //将RequestBody注解修饰的参数作为请求参数 - RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); - if (requestBody != null) { - argList.add(args[i]); - } - //将RequestParam注解修饰的参数作为请求参数 - RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); - if (requestParam != null) { - Map map = new HashMap<>(); - String key = parameters[i].getName(); - if (!StringUtils.isEmpty(requestParam.value())) { - key = requestParam.value(); - } - map.put(key, args[i]); - argList.add(map); - } - } - if (argList.size() == 0) { - return null; - } else if (argList.size() == 1) { - return argList.get(0); - } else { - return argList; - } - } -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/dto/WebLog.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/dto/WebLog.java deleted file mode 100644 index c2fb9f1c..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/dto/WebLog.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.macro.mall.tiny.dto; - -/** - * 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-tiny-log/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 37d62163..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - long countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-log/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-log/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-log/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-log/src/main/resources/application-dev.yml b/mall-tiny-log/src/main/resources/application-dev.yml deleted file mode 100644 index fe55f5a3..00000000 --- a/mall-tiny-log/src/main/resources/application-dev.yml +++ /dev/null @@ -1,6 +0,0 @@ -logstash: - host: localhost - -logging: - level: - root: debug \ No newline at end of file diff --git a/mall-tiny-log/src/main/resources/application-prod.yml b/mall-tiny-log/src/main/resources/application-prod.yml deleted file mode 100644 index 6da8e93f..00000000 --- a/mall-tiny-log/src/main/resources/application-prod.yml +++ /dev/null @@ -1,6 +0,0 @@ -logstash: - host: logstash-prod - -logging: - level: - root: info \ No newline at end of file diff --git a/mall-tiny-log/src/main/resources/application-test.yml b/mall-tiny-log/src/main/resources/application-test.yml deleted file mode 100644 index 6717f3a8..00000000 --- a/mall-tiny-log/src/main/resources/application-test.yml +++ /dev/null @@ -1,6 +0,0 @@ -logstash: - host: 192.168.3.101 - -logging: - level: - root: debug \ No newline at end of file diff --git a/mall-tiny-log/src/main/resources/application.yml b/mall-tiny-log/src/main/resources/application.yml deleted file mode 100644 index f3d12294..00000000 --- a/mall-tiny-log/src/main/resources/application.yml +++ /dev/null @@ -1,17 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - application: - name: mall-tiny-log - profiles: - active: test - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml \ No newline at end of file diff --git a/mall-tiny-log/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-log/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 51b5436b..00000000 --- a/mall-tiny-log/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-log/src/main/resources/generator.properties b/mall-tiny-log/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-log/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-log/src/main/resources/generatorConfig.xml b/mall-tiny-log/src/main/resources/generatorConfig.xml deleted file mode 100644 index 413e323c..00000000 --- a/mall-tiny-log/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-log/src/main/resources/logback-spring.xml b/mall-tiny-log/src/main/resources/logback-spring.xml deleted file mode 100644 index 25d96f8e..00000000 --- a/mall-tiny-log/src/main/resources/logback-spring.xml +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - - - - - - - - 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-tiny", - "level": "%level", - "service": "${APP_NAME:-}", - "pid": "${PID:-}", - "thread": "%thread", - "class": "%logger", - "message": "%message", - "stack_trace": "%exception{20}" - } - - - - - - - - 5 minutes - - - - - - - - ERROR - ACCEPT - DENY - - ${LOG_STASH_HOST}:4561 - - - - Asia/Shanghai - - - - - { - "project": "mall-tiny", - "level": "%level", - "service": "${APP_NAME:-}", - "pid": "${PID:-}", - "thread": "%thread", - "class": "%logger", - "message": "%message", - "stack_trace": "%exception{20}" - } - - - - - - - - 5 minutes - - - - - - - ${LOG_STASH_HOST}:4562 - - - - Asia/Shanghai - - - - - { - "project": "mall-tiny", - "level": "%level", - "service": "${APP_NAME:-}", - "pid": "${PID:-}", - "thread": "%thread", - "class": "%logger", - "message": "%message", - "stack_trace": "%exception{20}" - } - - - - - - - - 5 minutes - - - - - - - ${LOG_STASH_HOST}:4563 - - - - Asia/Shanghai - - - - - { - "project": "mall-tiny", - "level": "%level", - "service": "${APP_NAME:-}", - "class": "%logger", - "message": "%message" - } - - - - - - - - 5 minutes - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mall-tiny-log/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-log/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-log/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-loki/.gitignore b/mall-tiny-loki/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-loki/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-loki/pom.xml b/mall-tiny-loki/pom.xml deleted file mode 100644 index b50e9127..00000000 --- a/mall-tiny-loki/pom.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-loki - 1.0-SNAPSHOT - mall-tiny-loki - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - com.spotify - docker-maven-plugin - 1.1.0 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - http://192.168.7.149:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - - - diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-loki/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-loki/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-loki/src/main/resources/application.yml b/mall-tiny-loki/src/main/resources/application.yml deleted file mode 100644 index 0e919e56..00000000 --- a/mall-tiny-loki/src/main/resources/application.yml +++ /dev/null @@ -1,21 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://192.168.7.149:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - application: - name: mall-tiny-loki - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -logging: - path: /var/logs - level: - com.macro.mall.tiny: debug - diff --git a/mall-tiny-loki/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-loki/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-loki/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-loki/src/main/resources/generator.properties b/mall-tiny-loki/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-loki/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-loki/src/main/resources/generatorConfig.xml b/mall-tiny-loki/src/main/resources/generatorConfig.xml deleted file mode 100644 index 2c920458..00000000 --- a/mall-tiny-loki/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-loki/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-loki/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-loki/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-loki/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-loki/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-loki/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-lombok/pom.xml b/mall-tiny-lombok/pom.xml index a3f760b2..b16558e1 100644 --- a/mall-tiny-lombok/pom.xml +++ b/mall-tiny-lombok/pom.xml @@ -2,25 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-lombok - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-lombok Demo project for Spring Boot - - UTF-8 - UTF-8 - 1.8 - true - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/BuilderExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/BuilderExample.java index f14818bc..cd170498 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/BuilderExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/BuilderExample.java @@ -4,7 +4,10 @@ import lombok.ToString; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @Builder注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @Builder @ToString diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/CleanupExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/CleanupExample.java index 900291ce..0a74d82f 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/CleanupExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/CleanupExample.java @@ -5,7 +5,10 @@ import java.io.*; /** - * Created by macro on 2020/12/16. + * @auther macrozheng + * @description @Cleanup注解使用示例 + * @date 2020/12/16 + * @github https://github.com/macrozheng */ public class CleanupExample { public static void main(String[] args) throws IOException { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ConstructorExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ConstructorExample.java index fbc31d72..cfb6f8c5 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ConstructorExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ConstructorExample.java @@ -3,7 +3,10 @@ import lombok.*; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @XxConstructor注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @NoArgsConstructor @RequiredArgsConstructor(staticName = "of") diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/DataExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/DataExample.java index df02e53e..7918df29 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/DataExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/DataExample.java @@ -5,7 +5,10 @@ import lombok.NonNull; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @Data注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @Data public class DataExample { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/EqualsAndHashCodeExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/EqualsAndHashCodeExample.java index 3ff9ffb2..bc13ea06 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/EqualsAndHashCodeExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/EqualsAndHashCodeExample.java @@ -5,7 +5,10 @@ import lombok.Setter; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @EqualsAndHashCode使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @Getter @Setter diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/GetterLazyExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/GetterLazyExample.java index 3f784436..438a225b 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/GetterLazyExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/GetterLazyExample.java @@ -3,7 +3,10 @@ import lombok.Getter; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @Getter注解实现属性懒加载 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ public class GetterLazyExample { @Getter(lazy = true) diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/GetterSetterExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/GetterSetterExample.java index 0ddc7773..b3b7a746 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/GetterSetterExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/GetterSetterExample.java @@ -5,7 +5,10 @@ import lombok.Setter; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @Getter @Setter注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ public class GetterSetterExample { @Getter diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/LogExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/LogExample.java index f64d5020..8d7670ba 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/LogExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/LogExample.java @@ -3,7 +3,10 @@ import lombok.extern.java.Log; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @Log注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @Log public class LogExample { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/LogSlf4jExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/LogSlf4jExample.java index 6f1e2792..4930cdc1 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/LogSlf4jExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/LogSlf4jExample.java @@ -3,7 +3,10 @@ import lombok.extern.slf4j.Slf4j; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @Slf4j注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @Slf4j public class LogSlf4jExample { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/NonNullExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/NonNullExample.java index 9ffba556..686f7632 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/NonNullExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/NonNullExample.java @@ -3,7 +3,10 @@ import lombok.NonNull; /** - * Created by macro on 2020/12/16. + * @auther macrozheng + * @description @NonNull注解使用示例 + * @date 2020/12/16 + * @github https://github.com/macrozheng */ public class NonNullExample { private String name; diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/SneakyThrowsExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/SneakyThrowsExample.java index 597e8b9e..c55f5a1e 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/SneakyThrowsExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/SneakyThrowsExample.java @@ -5,7 +5,10 @@ import java.io.UnsupportedEncodingException; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @SneakyThrows注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ public class SneakyThrowsExample { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/SynchronizedExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/SynchronizedExample.java index a397684f..34fe5bb5 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/SynchronizedExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/SynchronizedExample.java @@ -3,7 +3,10 @@ import lombok.*; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @Synchronized注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @Data public class SynchronizedExample { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ToStringExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ToStringExample.java index 171c915c..2416b3a1 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ToStringExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ToStringExample.java @@ -3,7 +3,10 @@ import lombok.ToString; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @ToString注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @ToString public class ToStringExample { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ValExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ValExample.java index 741c2d0d..dfd6289b 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ValExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ValExample.java @@ -5,8 +5,12 @@ import java.util.ArrayList; import java.util.HashMap; + /** - * Created by macro on 2020/12/16. + * @auther macrozheng + * @description val注解使用示例 + * @date 2020/12/16 + * @github https://github.com/macrozheng */ public class ValExample { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ValueExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ValueExample.java index 6eaf8289..3057d559 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ValueExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/ValueExample.java @@ -3,7 +3,10 @@ import lombok.Value; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @Value注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @Value public class ValueExample { diff --git a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/WithExample.java b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/WithExample.java index d94c6a70..9d5acfa5 100644 --- a/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/WithExample.java +++ b/mall-tiny-lombok/src/main/java/com/macro/mall/tiny/example/WithExample.java @@ -4,7 +4,10 @@ import lombok.With; /** - * Created by macro on 2020/12/17. + * @auther macrozheng + * @description @With注解使用示例 + * @date 2020/12/17 + * @github https://github.com/macrozheng */ @With @AllArgsConstructor diff --git a/mall-tiny-lombok/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-lombok/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-lombok/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-lombok/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-magic-api/.gitignore b/mall-tiny-magic-api/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-magic-api/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-magic-api/pom.xml b/mall-tiny-magic-api/pom.xml deleted file mode 100644 index 12bdb10b..00000000 --- a/mall-tiny-magic-api/pom.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-magic-api - 1.0-SNAPSHOT - mall-tiny-magic-api - Demo project for Erupt - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - org.ssssssss - magic-api-spring-boot-starter - 1.0.2 - - - - io.springfox - springfox-swagger2 - 2.9.2 - - - io.springfox - springfox-swagger-ui - 2.9.2 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index e923b4c2..00000000 --- a/mall-tiny-magic-api/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.context.annotation.Configuration; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -/** - * Created by macro on 2021/4/14. - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { -} diff --git a/mall-tiny-magic-api/src/main/resources/application.yml b/mall-tiny-magic-api/src/main/resources/application.yml deleted file mode 100644 index 8912fd41..00000000 --- a/mall-tiny-magic-api/src/main/resources/application.yml +++ /dev/null @@ -1,46 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/magic_api?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -magic-api: - # 配置api管理页面入口 - web: /magic/web - # 配置存储方式 - resource: - # 配置接口资源存储位置,可选file、database、redis - type: database - # 存储表名 - tableName: magic_api_file - # 使用database、redis存储时的key前缀 - prefix: /magic-api - # 是否是只读模式 - readonly: false - # 启用驼峰命名转换 - sql-column-case: camel - # 分页配置 - page-config: - # 页大小的请求参数名称 - size: size - # 页码的请求参数名称 - page: page - # 未传页码时的默认页码 - default-page: 1 - # 未传页大小时的默认页大小 - default-size: 10 - # 集成Swagger配置 - swagger-config: - # 文档名称 - name: MagicAPI 测试接口 - # 文档标题 - title: MagicAPI Swagger Docs - # 文档描述 - description: MagicAPI 测试接口信息 - # 文档版本号 - version: 1.0 - # 文档资源位置 - location: /v2/api-docs/magic-api/swagger2.json \ No newline at end of file diff --git a/mall-tiny-magic-api/src/main/resources/magic_api_file.sql b/mall-tiny-magic-api/src/main/resources/magic_api_file.sql deleted file mode 100644 index 6b77cfb4..00000000 --- a/mall-tiny-magic-api/src/main/resources/magic_api_file.sql +++ /dev/null @@ -1,7 +0,0 @@ -CREATE TABLE `magic_api_file` -( - `id` bigint(255) NOT NULL AUTO_INCREMENT, - `file_path` varchar(255) DEFAULT NULL, - `file_content` text, - PRIMARY KEY (`id`) -) \ No newline at end of file diff --git a/mall-tiny-magic-api/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-magic-api/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-magic-api/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-mapstruct/.gitignore b/mall-tiny-mapstruct/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-mapstruct/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-mapstruct/pom.xml b/mall-tiny-mapstruct/pom.xml deleted file mode 100644 index f4a5b6d7..00000000 --- a/mall-tiny-mapstruct/pom.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-mapstruct - 1.0-SNAPSHOT - mall-tiny-mapstruct - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - 1.4.2.Final - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - org.mapstruct - mapstruct - ${mapstruct.version} - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - compile - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index f47bcaf6..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.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.Contact; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/controller/MapStructController.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/controller/MapStructController.java deleted file mode 100644 index 9bf47cb7..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/controller/MapStructController.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.MemberDto; -import com.macro.mall.tiny.dto.MemberOrderDto; -import com.macro.mall.tiny.dto.OrderDto; -import com.macro.mall.tiny.dto.ProductDto; -import com.macro.mall.tiny.exception.ProductValidatorException; -import com.macro.mall.tiny.mapper.*; -import com.macro.mall.tiny.po.Member; -import com.macro.mall.tiny.po.Order; -import com.macro.mall.tiny.po.Product; -import com.macro.mall.tiny.util.LocalJsonUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.math.BigDecimal; -import java.util.List; - -/** - * MapStruct对象转换测试Controller - * Created by macro on 2021/10/21. - */ -@RestController -@Api(tags = "MapStructController", description = "MapStruct对象转换测试") -@RequestMapping("/mapStruct") -public class MapStructController { - - @Autowired - private MemberSpringMapper memberSpringMapper; - - @ApiOperation(value = "基本映射") - @GetMapping("/baseMapping") - public CommonResult baseTest() { - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - MemberDto memberDto = MemberMapper.INSTANCE.toDto(memberList.get(0)); - return CommonResult.success(memberDto); - } - - @ApiOperation(value = "集合映射") - @GetMapping("/collectionMapping") - public CommonResult collectionMapping() { - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - List memberDtoList = MemberMapper.INSTANCE.toDtoList(memberList); - return CommonResult.success(memberDtoList); - } - - @ApiOperation(value = "子对象映射") - @GetMapping("/subMapping") - public CommonResult subMapping() { - List orderList = getOrderList(); - OrderDto orderDto = OrderMapper.INSTANCE.toDto(orderList.get(0)); - return CommonResult.success(orderDto); - } - - @ApiOperation(value = "组合映射") - @GetMapping("/compositeMapping") - public CommonResult compositeMapping() { - List orderList = LocalJsonUtil.getListFromJson("json/orders.json", Order.class); - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - Member member = memberList.get(0); - Order order = orderList.get(0); - MemberOrderDto memberOrderDto = MemberMapper.INSTANCE.toMemberOrderDto(member,order); - return CommonResult.success(memberOrderDto); - } - - @ApiOperation(value = "使用依赖注入") - @GetMapping("/springMapping") - public CommonResult springMapping() { - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - MemberDto memberDto = memberSpringMapper.toDto(memberList.get(0)); - return CommonResult.success(memberDto); - } - - @ApiOperation(value = "使用常量、默认值和表达式") - @GetMapping("/defaultMapping") - public CommonResult defaultMapping() { - List productList = LocalJsonUtil.getListFromJson("json/products.json", Product.class); - Product product = productList.get(0); - product.setId(100L); - product.setCount(null); - ProductDto productDto = ProductMapper.INSTANCE.toDto(product); - return CommonResult.success(productDto); - } - - @ApiOperation(value = "在映射前后进行自定义处理") - @GetMapping("/customRoundMapping") - public CommonResult customRoundMapping() { - List productList = LocalJsonUtil.getListFromJson("json/products.json", Product.class); - Product product = productList.get(0); - product.setPrice(new BigDecimal(-1)); - ProductDto productDto = ProductRoundMapper.INSTANCE.toDto(product); - return CommonResult.success(productDto); - } - - @ApiOperation(value = "处理映射异常") - @GetMapping("/exceptionMapping") - public CommonResult exceptionMapping() { - List productList = LocalJsonUtil.getListFromJson("json/products.json", Product.class); - Product product = productList.get(0); - product.setPrice(new BigDecimal(-1)); - ProductDto productDto = null; - try { - productDto = ProductExceptionMapper.INSTANCE.toDto(product); - } catch (ProductValidatorException e) { - e.printStackTrace(); - } - return CommonResult.success(productDto); - } - - private List getOrderList() { - List orderList = LocalJsonUtil.getListFromJson("json/orders.json", Order.class); - List productList = LocalJsonUtil.getListFromJson("json/products.json", Product.class); - List memberList = LocalJsonUtil.getListFromJson("json/members.json", Member.class); - for (int i = 0; i < orderList.size(); i++) { - Order order = orderList.get(i); - order.setMember(memberList.get(i)); - order.setProductList(productList); - } - return orderList; - } -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/MemberDto.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/MemberDto.java deleted file mode 100644 index 012e6cf2..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/MemberDto.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.dto; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; - -/** - * 购物会员Dto - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class MemberDto { - private Long id; - private String username; - private String password; - private String nickname; - //与PO类型不同的属性 - private String birthday; - //与PO名称不同的属性 - private String phoneNumber; - private String icon; - private Integer gender; -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/MemberOrderDto.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/MemberOrderDto.java deleted file mode 100644 index bd7c0cdb..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/MemberOrderDto.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.macro.mall.tiny.dto; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; - -/** - * 会员商品信息组合Dto - * Created by macro on 2021/10/21. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class MemberOrderDto extends MemberDto{ - private String orderSn; - private String receiverAddress; -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/OrderDto.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/OrderDto.java deleted file mode 100644 index f7901a47..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/OrderDto.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.dto; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; -import java.util.List; - -/** - * 订单Dto - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class OrderDto { - private Long id; - private String orderSn; - private Date createTime; - private String receiverAddress; - //子对象映射Dto - private MemberDto memberDto; - //子对象数组映射Dto - private List productDtoList; -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/ProductDto.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/ProductDto.java deleted file mode 100644 index 0ebe852c..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/dto/ProductDto.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.dto; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.math.BigDecimal; -import java.util.Date; - -/** - * 商品Dto - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class ProductDto { - //使用常量 - private Long id; - //使用表达式生成属性 - private String productSn; - private String name; - private String subTitle; - private String brandName; - private BigDecimal price; - //使用默认值 - private Integer count; - private Date createTime; -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/exception/ProductValidatorException.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/exception/ProductValidatorException.java deleted file mode 100644 index f75a7680..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/exception/ProductValidatorException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.exception; - -/** - * 商品验证异常类 - * Created by macro on 2021/10/22. - */ -public class ProductValidatorException extends Exception{ - public ProductValidatorException(String message) { - super(message); - } -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/MemberMapper.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/MemberMapper.java deleted file mode 100644 index ad80a811..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/MemberMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mapper; - -import com.macro.mall.tiny.dto.MemberDto; -import com.macro.mall.tiny.dto.MemberOrderDto; -import com.macro.mall.tiny.po.Member; -import com.macro.mall.tiny.po.Order; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.Mappings; -import org.mapstruct.factory.Mappers; - -import java.util.List; - -/** - * 会员对象映射 - * Created by macro on 2021/10/21. - */ -@Mapper -public interface MemberMapper { - MemberMapper INSTANCE = Mappers.getMapper(MemberMapper.class); - - @Mapping(source = "phone",target = "phoneNumber") - @Mapping(source = "birthday",target = "birthday",dateFormat = "yyyy-MM-dd") - MemberDto toDto(Member member); - - @Mapping(source = "phone",target = "phoneNumber") - @Mapping(source = "birthday",target = "birthday",dateFormat = "yyyy-MM-dd") - List toDtoList(List list); - - @Mapping(source = "member.phone",target = "phoneNumber") - @Mapping(source = "member.birthday",target = "birthday",dateFormat = "yyyy-MM-dd") - @Mapping(source = "member.id",target = "id") - @Mapping(source = "order.orderSn", target = "orderSn") - @Mapping(source = "order.receiverAddress", target = "receiverAddress") - MemberOrderDto toMemberOrderDto(Member member, Order order); -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/MemberSpringMapper.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/MemberSpringMapper.java deleted file mode 100644 index 60e3a2e7..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/MemberSpringMapper.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.mapper; - -import com.macro.mall.tiny.dto.MemberDto; -import com.macro.mall.tiny.dto.MemberOrderDto; -import com.macro.mall.tiny.po.Member; -import com.macro.mall.tiny.po.Order; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.factory.Mappers; - -import java.util.List; - -/** - * 会员对象映射(依赖注入) - * Created by macro on 2021/10/21. - */ -@Mapper(componentModel = "spring") -public interface MemberSpringMapper { - @Mapping(source = "phone",target = "phoneNumber") - @Mapping(source = "birthday",target = "birthday",dateFormat = "yyyy-MM-dd") - MemberDto toDto(Member member); - - @Mapping(source = "phone",target = "phoneNumber") - @Mapping(source = "birthday",target = "birthday",dateFormat = "yyyy-MM-dd") - List toDtoList(List list); - - @Mapping(source = "member.phone",target = "phoneNumber") - @Mapping(source = "member.birthday",target = "birthday",dateFormat = "yyyy-MM-dd") - @Mapping(source = "member.id",target = "id") - @Mapping(source = "order.orderSn", target = "orderSn") - @Mapping(source = "order.receiverAddress", target = "receiverAddress") - MemberOrderDto toMemberOrderDto(Member member, Order order); -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/OrderMapper.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/OrderMapper.java deleted file mode 100644 index 3f9f9e86..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/OrderMapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.macro.mall.tiny.mapper; - -import com.macro.mall.tiny.dto.OrderDto; -import com.macro.mall.tiny.po.Order; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.factory.Mappers; - -/** - * 订单对象映射 - * Created by macro on 2021/10/21. - */ -@Mapper(uses = {MemberMapper.class,ProductMapper.class}) -public interface OrderMapper { - OrderMapper INSTANCE = Mappers.getMapper(OrderMapper.class); - - @Mapping(source = "member",target = "memberDto") - @Mapping(source = "productList",target = "productDtoList") - OrderDto toDto(Order order); -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductExceptionMapper.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductExceptionMapper.java deleted file mode 100644 index 40002fe4..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductExceptionMapper.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.mapper; - -import com.macro.mall.tiny.dto.ProductDto; -import com.macro.mall.tiny.exception.ProductValidatorException; -import com.macro.mall.tiny.po.Product; -import com.macro.mall.tiny.validator.ProductValidator; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.factory.Mappers; - -import java.util.UUID; - -/** - * 商品对象映射(处理映射异常) - * Created by macro on 2021/10/21. - */ -@Mapper(uses = {ProductValidator.class},imports = {UUID.class}) -public interface ProductExceptionMapper { - ProductExceptionMapper INSTANCE = Mappers.getMapper(ProductExceptionMapper.class); - - @Mapping(target = "id",constant = "-1L") - @Mapping(source = "count",target = "count",defaultValue = "1") - @Mapping(target = "productSn",expression = "java(UUID.randomUUID().toString())") - ProductDto toDto(Product product) throws ProductValidatorException; -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductMapper.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductMapper.java deleted file mode 100644 index 5c21c875..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductMapper.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.mapper; - -import com.macro.mall.tiny.dto.ProductDto; -import com.macro.mall.tiny.po.Product; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.factory.Mappers; - -import java.util.UUID; - -/** - * 商品对象映射 - * Created by macro on 2021/10/21. - */ -@Mapper(imports = {UUID.class}) -public interface ProductMapper { - ProductMapper INSTANCE = Mappers.getMapper(ProductMapper.class); - - @Mapping(target = "id",constant = "-1L") - @Mapping(source = "count",target = "count",defaultValue = "1") - @Mapping(target = "productSn",expression = "java(UUID.randomUUID().toString())") - ProductDto toDto(Product product); -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductRoundMapper.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductRoundMapper.java deleted file mode 100644 index e58826b4..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/mapper/ProductRoundMapper.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mapper; - -import com.macro.mall.tiny.dto.ProductDto; -import com.macro.mall.tiny.po.Product; -import org.mapstruct.*; -import org.mapstruct.factory.Mappers; - -import java.math.BigDecimal; -import java.util.Date; -import java.util.UUID; - -/** - * 商品对象映射(自定义处理) - * Created by macro on 2021/10/21. - */ -@Mapper(imports = {UUID.class}) -public abstract class ProductRoundMapper { - public static ProductRoundMapper INSTANCE = Mappers.getMapper(ProductRoundMapper.class); - - @Mapping(target = "id",constant = "-1L") - @Mapping(source = "count",target = "count",defaultValue = "1") - @Mapping(target = "productSn",expression = "java(UUID.randomUUID().toString())") - public abstract ProductDto toDto(Product product); - - @BeforeMapping - public void beforeMapping(Product product){ - //映射前当price<0时设置为0 - if(product.getPrice().compareTo(BigDecimal.ZERO)<0){ - product.setPrice(BigDecimal.ZERO); - } - } - - @AfterMapping - public void afterMapping(@MappingTarget ProductDto productDto){ - //映射后设置当前时间为createTime - productDto.setCreateTime(new Date()); - } -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Member.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Member.java deleted file mode 100644 index 09f609ac..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Member.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.po; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; - -/** - * 购物会员 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Member { - private Long id; - private String username; - private String password; - private String nickname; - private Date birthday; - private String phone; - private String icon; - private Integer gender; -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Order.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Order.java deleted file mode 100644 index 793c6500..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Order.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.po; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.Date; -import java.util.List; - -/** - * 订单 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Order { - private Long id; - private String orderSn; - private Date createTime; - private String receiverAddress; - private Member member; - private List productList; -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Product.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Product.java deleted file mode 100644 index 19148e76..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/po/Product.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.po; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.math.BigDecimal; -import java.util.Date; - -/** - * 商品 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class Product { - private Long id; - private String productSn; - private String name; - private String subTitle; - private String brandName; - private BigDecimal price; - private Integer count; - private Date createTime; -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java deleted file mode 100644 index 4e016cae..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.util; - -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.io.resource.ClassPathResource; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONUtil; - -import java.nio.charset.Charset; -import java.util.List; - -/** - * 从本地获取JSON数据的工具类 - * Created by macro on 2021/10/16. - */ -public class LocalJsonUtil { - - /** - * 从指定路径获取JSON并转换为List - * @param path json文件路径 - * @param elementType List元素类型 - */ - public static List getListFromJson(String path, Class elementType) { - ClassPathResource resource = new ClassPathResource(path); - String jsonStr = IoUtil.read(resource.getStream(), Charset.forName("UTF-8")); - JSONArray jsonArray = new JSONArray(jsonStr); - return JSONUtil.toList(jsonArray, elementType); - } -} diff --git a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/validator/ProductValidator.java b/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/validator/ProductValidator.java deleted file mode 100644 index c7b9119a..00000000 --- a/mall-tiny-mapstruct/src/main/java/com/macro/mall/tiny/validator/ProductValidator.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.macro.mall.tiny.validator; - -import com.macro.mall.tiny.exception.ProductValidatorException; - -import java.math.BigDecimal; - -/** - * 商品验证异常处理器 - * Created by macro on 2021/10/22. - */ -public class ProductValidator { - public BigDecimal validatePrice(BigDecimal price) throws ProductValidatorException { - if(price.compareTo(BigDecimal.ZERO)<0){ - throw new ProductValidatorException("价格不能小于0!"); - } - return price; - } -} diff --git a/mall-tiny-mapstruct/src/main/resources/application.yml b/mall-tiny-mapstruct/src/main/resources/application.yml deleted file mode 100644 index 395b50e4..00000000 --- a/mall-tiny-mapstruct/src/main/resources/application.yml +++ /dev/null @@ -1,7 +0,0 @@ -server: - port: 8088 - -springfox: - documentation: - enabled: true - diff --git a/mall-tiny-mapstruct/src/main/resources/json/members.json b/mall-tiny-mapstruct/src/main/resources/json/members.json deleted file mode 100644 index e47c7ed7..00000000 --- a/mall-tiny-mapstruct/src/main/resources/json/members.json +++ /dev/null @@ -1,52 +0,0 @@ -[ - { - "id": 1, - "username": "admin", - "password": null, - "nickname": "Admin", - "birthday": "1994-12-31", - "phone": "18790000000", - "icon": null, - "gender": 0 - }, - { - "id": 2, - "username": "macro", - "password": null, - "nickname": "Macro", - "birthday": "1995-01-31", - "phone": "18791000000", - "icon": null, - "gender": 0 - }, - { - "id": 3, - "username": "andy", - "password": null, - "nickname": "Andy", - "birthday": "1995-02-28", - "phone": "18792000000", - "icon": null, - "gender": 1 - }, - { - "id": 4, - "username": "ruby", - "password": null, - "nickname": "Ruby", - "birthday": "1995-03-31", - "phone": "18793000000", - "icon": null, - "gender": 1 - }, - { - "id": 5, - "username": "tom", - "password": null, - "nickname": "", - "birthday": "1995-03-31", - "phone": "18793000000", - "icon": null, - "gender": 1 - } -] \ No newline at end of file diff --git a/mall-tiny-mapstruct/src/main/resources/json/orders.json b/mall-tiny-mapstruct/src/main/resources/json/orders.json deleted file mode 100644 index af5e87bf..00000000 --- a/mall-tiny-mapstruct/src/main/resources/json/orders.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "id": 1, - "orderSn": "201809150101000001", - "createTime": "2021-10-10 17:02:28", - "receiverAddress": "广东省深圳市" - }, - { - "id": 1, - "orderSn": "201809150101000002", - "createTime": "2021-10-11 17:02:28", - "receiverAddress": "江苏省南京市" - }, - { - "id": 1, - "orderSn": "201809150101000003", - "createTime": "2021-10-12 17:02:28", - "receiverAddress": "江苏省苏州市" - } -] \ No newline at end of file diff --git a/mall-tiny-mapstruct/src/main/resources/json/products.json b/mall-tiny-mapstruct/src/main/resources/json/products.json deleted file mode 100644 index 90a40ea0..00000000 --- a/mall-tiny-mapstruct/src/main/resources/json/products.json +++ /dev/null @@ -1,29 +0,0 @@ -[ - { - "id": 1, - "productSn": "7437788", - "name": "小米8", - "subTitle": "全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待", - "brandName": "小米", - "price": 2699, - "count": 1 - }, - { - "id": 2, - "productSn": "7437789", - "name": "红米5A", - "subTitle": "全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待", - "brandName": "小米", - "price": 649, - "count": 1 - }, - { - "id": 3, - "productSn": "7437799", - "name": "Apple iPhone 8 Plus", - "subTitle": "64GB 红色特别版 移动联通电信4G手机", - "brandName": "苹果", - "price": 5499, - "count": 1 - } -] \ No newline at end of file diff --git a/mall-tiny-mapstruct/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-mapstruct/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-mapstruct/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-mapstruct/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-mapstruct/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-mapstruct/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-mqtt/.gitignore b/mall-tiny-mqtt/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-mqtt/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-mqtt/pom.xml b/mall-tiny-mqtt/pom.xml deleted file mode 100644 index 2c98245e..00000000 --- a/mall-tiny-mqtt/pom.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-mqtt - 1.0-SNAPSHOT - mall-tiny-mqtt - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-thymeleaf - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - org.springframework.integration - spring-integration-mqtt - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttConfig.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttConfig.java deleted file mode 100644 index 773f49d0..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttConfig.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.config; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -/** - * MQTT相关配置 - * Created by macro on 2020/9/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Component -@ConfigurationProperties(prefix = "rabbitmq.mqtt") -public class MqttConfig { - /** - * RabbitMQ连接用户名 - */ - private String username; - /** - * RabbitMQ连接密码 - */ - private String password; - /** - * RabbitMQ的MQTT默认topic - */ - private String defaultTopic; - /** - * RabbitMQ的MQTT连接地址 - */ - private String url; -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttInboundConfig.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttInboundConfig.java deleted file mode 100644 index 1a104868..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttInboundConfig.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.config; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.annotation.ServiceActivator; -import org.springframework.integration.channel.DirectChannel; -import org.springframework.integration.core.MessageProducer; -import org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter; -import org.springframework.integration.mqtt.support.DefaultPahoMessageConverter; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageChannel; -import org.springframework.messaging.MessageHandler; -import org.springframework.messaging.MessagingException; - -/** - * MQTT消息订阅者相关配置 - * Created by macro on 2020/9/15. - */ -@Slf4j -@Configuration -public class MqttInboundConfig { - @Autowired - private MqttConfig mqttConfig; - - @Bean - public MessageChannel mqttInputChannel() { - return new DirectChannel(); - } - - @Bean - public MessageProducer inbound() { - MqttPahoMessageDrivenChannelAdapter adapter = - new MqttPahoMessageDrivenChannelAdapter(mqttConfig.getUrl(), "subscriberClient", - mqttConfig.getDefaultTopic()); - adapter.setCompletionTimeout(5000); - adapter.setConverter(new DefaultPahoMessageConverter()); - //设置消息质量:0->至多一次;1->至少一次;2->只有一次 - adapter.setQos(1); - adapter.setOutputChannel(mqttInputChannel()); - return adapter; - } - - @Bean - @ServiceActivator(inputChannel = "mqttInputChannel") - public MessageHandler handler() { - return new MessageHandler() { - - @Override - public void handleMessage(Message message) throws MessagingException { - //处理订阅消息 - log.info("handleMessage : {}",message.getPayload()); - } - - }; - } -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttOutboundConfig.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttOutboundConfig.java deleted file mode 100644 index abff345a..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/MqttOutboundConfig.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.eclipse.paho.client.mqttv3.MqttConnectOptions; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.integration.annotation.ServiceActivator; -import org.springframework.integration.channel.DirectChannel; -import org.springframework.integration.mqtt.core.DefaultMqttPahoClientFactory; -import org.springframework.integration.mqtt.core.MqttPahoClientFactory; -import org.springframework.integration.mqtt.outbound.MqttPahoMessageHandler; -import org.springframework.messaging.MessageChannel; -import org.springframework.messaging.MessageHandler; - -/** - * MQTT消息发布者相关配置 - * Created by macro on 2020/9/15. - */ -@Configuration -public class MqttOutboundConfig { - - @Autowired - private MqttConfig mqttConfig; - - @Bean - public MqttPahoClientFactory mqttClientFactory() { - DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory(); - MqttConnectOptions options = new MqttConnectOptions(); - options.setServerURIs(new String[] { mqttConfig.getUrl()}); - options.setUserName(mqttConfig.getUsername()); - options.setPassword(mqttConfig.getPassword().toCharArray()); - factory.setConnectionOptions(options); - return factory; - } - - @Bean - @ServiceActivator(inputChannel = "mqttOutboundChannel") - public MessageHandler mqttOutbound() { - MqttPahoMessageHandler messageHandler = - new MqttPahoMessageHandler("publisherClient", mqttClientFactory()); - messageHandler.setAsync(true); - messageHandler.setDefaultTopic(mqttConfig.getDefaultTopic()); - return messageHandler; - } - - @Bean - public MessageChannel mqttOutboundChannel() { - return new DirectChannel(); - } -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index d8196c5c..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.macro.mall.tiny.config; - -import io.swagger.annotations.Api; -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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 - .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/controller/MqttController.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/controller/MqttController.java deleted file mode 100644 index 841bd54f..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/controller/MqttController.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.gateway.MqttGateway; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * MQTT测试接口 - * Created by macro on 2020/9/15. - */ -@Api(tags = "MqttController", description = "MQTT测试接口") -@RestController -@RequestMapping("/mqtt") -public class MqttController { - - @Autowired - private MqttGateway mqttGateway; - - @PostMapping("/sendToDefaultTopic") - @ApiOperation("向默认主题发送消息") - public CommonResult sendToDefaultTopic(String payload) { - mqttGateway.sendToMqtt(payload); - return CommonResult.success(null); - } - - @PostMapping("/sendToTopic") - @ApiOperation("向指定主题发送消息") - public CommonResult sendToTopic(String payload, String topic) { - mqttGateway.sendToMqtt(payload, topic); - return CommonResult.success(null); - } -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/controller/PageController.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/controller/PageController.java deleted file mode 100644 index 9e3e8506..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/controller/PageController.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.macro.mall.tiny.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; - -/** - * Created by macro on 2020/9/16. - */ -@Controller -@RequestMapping("/page") -public class PageController { - - @GetMapping("/index") - public String index(){ - return "index"; - } -} diff --git a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/gateway/MqttGateway.java b/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/gateway/MqttGateway.java deleted file mode 100644 index 83949ee7..00000000 --- a/mall-tiny-mqtt/src/main/java/com/macro/mall/tiny/gateway/MqttGateway.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.gateway; - -import org.springframework.integration.annotation.MessagingGateway; -import org.springframework.integration.mqtt.support.MqttHeaders; -import org.springframework.messaging.handler.annotation.Header; -import org.springframework.stereotype.Component; - -/** - * MQTT网关,通过接口将数据传递到集成流 - * Created by macro on 2020/9/15. - */ -@Component -@MessagingGateway(defaultRequestChannel = "mqttOutboundChannel") -public interface MqttGateway { - /** - * 发送消息到默认topic - */ - void sendToMqtt(String payload); - - /** - * 发送消息到指定topic - */ - void sendToMqtt(String payload, @Header(MqttHeaders.TOPIC) String topic); - - /** - * 发送消息到指定topic并设置QOS - */ - void sendToMqtt(@Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) int qos, String payload); -} diff --git a/mall-tiny-mqtt/src/main/resources/application.yml b/mall-tiny-mqtt/src/main/resources/application.yml deleted file mode 100644 index 4897c6b3..00000000 --- a/mall-tiny-mqtt/src/main/resources/application.yml +++ /dev/null @@ -1,12 +0,0 @@ -server: - port: 8088 -rabbitmq: - mqtt: - url: tcp://localhost:1883 - username: guest - password: guest - defaultTopic: testTopic - -spring: - thymeleaf: - cache: false diff --git a/mall-tiny-mqtt/src/main/resources/templates/index.html b/mall-tiny-mqtt/src/main/resources/templates/index.html deleted file mode 100644 index a55d3ce9..00000000 --- a/mall-tiny-mqtt/src/main/resources/templates/index.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - Title - - -
-
-
- - -
-
- - - - \ No newline at end of file diff --git a/mall-tiny-mqtt/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-mqtt/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-mqtt/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-mqtt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-mqtt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-mqtt/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-mybatis/pom.xml b/mall-tiny-mybatis/pom.xml index 3db1c9eb..6f3175e2 100644 --- a/mall-tiny-mybatis/pom.xml +++ b/mall-tiny-mybatis/pom.xml @@ -2,25 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-mybatis - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-mybatis Demo project for Spring Boot - - UTF-8 - UTF-8 - 1.8 - true - - - org.springframework.boot - spring-boot-starter-parent - 2.7.0 - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -44,43 +37,43 @@ cn.hutool hutool-all - 5.8.0 + ${hutool.version} org.mybatis.spring.boot mybatis-spring-boot-starter - 2.2.2 + ${mybatis-starter.version} com.github.pagehelper pagehelper-spring-boot-starter - 1.4.2 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.2.9 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.4.1 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} io.springfox springfox-boot-starter - 3.0.0 + ${springfox-swagger.version} diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index ae065c8e..a8c2083b 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.dao") diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 595bbc97..313ba912 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -22,7 +22,10 @@ import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger2API文档的配置 + * @date 2022/11/21 + * @github https://github.com/macrozheng */ @Configuration public class Swagger2Config { diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java index aeca30bb..a29abe2f 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsAdminDao.java @@ -7,8 +7,10 @@ import java.util.List; /** - * 自定义UmsAdmin表查询 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description 自定义UmsAdmin表查询 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @Repository public interface UmsAdminDao { diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsResourceCategoryDao.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsResourceCategoryDao.java index 02f071c6..f0f06ca2 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsResourceCategoryDao.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsResourceCategoryDao.java @@ -4,8 +4,10 @@ import org.springframework.stereotype.Repository; /** - * 自定义UmsResourceCategory表查询 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description 自定义UmsResourceCategory表查询 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @Repository public interface UmsResourceCategoryDao { diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsResourceDao.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsResourceDao.java index eccdb7a5..e04ea6ae 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsResourceDao.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/dao/UmsResourceDao.java @@ -7,8 +7,10 @@ import java.util.List; /** - * 自定义UmsResource表查询 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description 自定义UmsResource表查询 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @Repository public interface UmsResourceDao { diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/domain/UmsResourceCategoryExt.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/domain/UmsResourceCategoryExt.java index 83fd1a75..7e98760c 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/domain/UmsResourceCategoryExt.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/domain/UmsResourceCategoryExt.java @@ -7,8 +7,10 @@ import java.util.List; /** - * UmsResourceCategory扩展类 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description UmsResourceCategory扩展类 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @Data public class UmsResourceCategoryExt extends UmsResourceCategory { diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/domain/UmsResourceExt.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/domain/UmsResourceExt.java index e71e453d..e09e1d4c 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/domain/UmsResourceExt.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/domain/UmsResourceExt.java @@ -5,8 +5,10 @@ import lombok.Data; /** - * UmsResource扩展类 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description UmsResource扩展类 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @Data public class UmsResourceExt extends UmsResource { diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 3ffa0c5e..1d47ea99 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,8 +11,10 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/service/UmsResourceService.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/service/UmsResourceService.java index c759d724..a7a35af0 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/service/UmsResourceService.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/service/UmsResourceService.java @@ -4,8 +4,10 @@ import com.macro.mall.tiny.model.UmsResource; /** - * UmsResource的Service接口 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description UmsResource的Service接口 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ public interface UmsResourceService { diff --git a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/service/impl/UmsResourceServiceImpl.java b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/service/impl/UmsResourceServiceImpl.java index 7848315c..7951637c 100644 --- a/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/service/impl/UmsResourceServiceImpl.java +++ b/mall-tiny-mybatis/src/main/java/com/macro/mall/tiny/service/impl/UmsResourceServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * UmsResource的Service接口实现类 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description UmsResource的Service接口实现类 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @Service public class UmsResourceServiceImpl implements UmsResourceService { diff --git a/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisAdvanceTest.java b/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisAdvanceTest.java index 026dbddf..11791c77 100644 --- a/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisAdvanceTest.java +++ b/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisAdvanceTest.java @@ -14,8 +14,10 @@ import org.springframework.boot.test.context.SpringBootTest; /** - * MyBatis高级查询测试 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description MyBatis高级查询测试 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @SpringBootTest public class MyBatisAdvanceTest { diff --git a/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisBaseTest.java b/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisBaseTest.java index b16cf820..be7ed8df 100644 --- a/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisBaseTest.java +++ b/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisBaseTest.java @@ -12,8 +12,10 @@ import java.util.Date; /** - * MyBatis基本操作测试 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description MyBatis基本操作测试 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @SpringBootTest public class MyBatisBaseTest { diff --git a/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisTagTest.java b/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisTagTest.java index eda90163..b9bf70d9 100644 --- a/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisTagTest.java +++ b/mall-tiny-mybatis/src/test/java/com/macro/mall/tiny/test/MyBatisTagTest.java @@ -13,8 +13,10 @@ import java.util.List; /** - * MyBatis标签测试 - * Created by macro on 2022/10/20. + * @auther macrozheng + * @description MyBatis标签测试 + * @date 2022/10/20 + * @github https://github.com/macrozheng */ @SpringBootTest public class MyBatisTagTest { diff --git a/mall-tiny-oss/.gitignore b/mall-tiny-oss/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-oss/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-oss/pom.xml b/mall-tiny-oss/pom.xml deleted file mode 100644 index 383b17b8..00000000 --- a/mall-tiny-oss/pom.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-oss - 1.0-SNAPSHOT - mall-tiny-oss - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - io.minio - minio - 3.0.10 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - com.spotify - docker-maven-plugin - 1.1.0 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - http://192.168.6.132:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - - - diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/controller/MinioController.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/controller/MinioController.java deleted file mode 100644 index 6c4eef87..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/controller/MinioController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.MinioUploadDto; -import io.minio.MinioClient; -import io.minio.policy.PolicyType; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; - -import java.text.SimpleDateFormat; -import java.util.Date; - -/** - * Created by macro on 2019/12/25. - */ -@Api(tags = "MinioController", description = "MinIO对象存储管理") -@Controller -@RequestMapping("/minio") -public class MinioController { - - private static final Logger LOGGER = LoggerFactory.getLogger(MinioController.class); - @Value("${minio.endpoint}") - private String ENDPOINT; - @Value("${minio.bucketName}") - private String BUCKET_NAME; - @Value("${minio.accessKey}") - private String ACCESS_KEY; - @Value("${minio.secretKey}") - private String SECRET_KEY; - - @ApiOperation("文件上传") - @RequestMapping(value = "/upload", method = RequestMethod.POST) - @ResponseBody - public CommonResult upload(@RequestParam("file") MultipartFile file) { - try { - //创建一个MinIO的Java客户端 - MinioClient minioClient = new MinioClient(ENDPOINT, ACCESS_KEY, SECRET_KEY); - boolean isExist = minioClient.bucketExists(BUCKET_NAME); - if (isExist) { - LOGGER.info("存储桶已经存在!"); - } else { - //创建存储桶并设置只读权限 - minioClient.makeBucket(BUCKET_NAME); - minioClient.setBucketPolicy(BUCKET_NAME, "*.*", PolicyType.READ_ONLY); - } - String filename = file.getOriginalFilename(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); - // 设置存储对象名称 - String objectName = sdf.format(new Date()) + "/" + filename; - // 使用putObject上传一个文件到存储桶中 - minioClient.putObject(BUCKET_NAME, objectName, file.getInputStream(), file.getContentType()); - LOGGER.info("文件上传成功!"); - MinioUploadDto minioUploadDto = new MinioUploadDto(); - minioUploadDto.setName(filename); - minioUploadDto.setUrl(ENDPOINT + "/" + BUCKET_NAME + "/" + objectName); - return CommonResult.success(minioUploadDto); - } catch (Exception e) { - LOGGER.info("上传发生错误: {}!", e.getMessage()); - } - return CommonResult.failed(); - } - - @ApiOperation("文件删除") - @RequestMapping(value = "/delete", method = RequestMethod.POST) - @ResponseBody - public CommonResult delete(@RequestParam("objectName") String objectName) { - try { - MinioClient minioClient = new MinioClient(ENDPOINT, ACCESS_KEY, SECRET_KEY); - minioClient.removeObject(BUCKET_NAME, objectName); - return CommonResult.success(null); - } catch (Exception e) { - e.printStackTrace(); - } - return CommonResult.failed(); - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java deleted file mode 100644 index ffb5f0f0..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.macro.mall.tiny.dto; - -/** - * 文件上传返回结果 - * Created by macro on 2019/12/25. - */ -public class MinioUploadDto { - private String url; - private String name; - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-oss/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-oss/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-oss/src/main/resources/application.yml b/mall-tiny-oss/src/main/resources/application.yml deleted file mode 100644 index 892369e5..00000000 --- a/mall-tiny-oss/src/main/resources/application.yml +++ /dev/null @@ -1,24 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - servlet: - multipart: - enabled: true #开启文件上传 - max-file-size: 10MB #限制文件上传大小为10M - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml -# MinIO对象存储相关配置 -minio: - endpoint: http://192.168.6.132:9090 #MinIO服务所在地址 - bucketName: mall #存储桶名称 - accessKey: minioadmin #访问的key - secretKey: minioadmin #访问的秘钥 - diff --git a/mall-tiny-oss/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-oss/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-oss/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-oss/src/main/resources/generator.properties b/mall-tiny-oss/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-oss/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-oss/src/main/resources/generatorConfig.xml b/mall-tiny-oss/src/main/resources/generatorConfig.xml deleted file mode 100644 index 5a7f21b2..00000000 --- a/mall-tiny-oss/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-oss/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-oss/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-oss/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-oss/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-oss/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-oss/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-plus/pom.xml b/mall-tiny-plus/pom.xml index 9d0038aa..254f856a 100644 --- a/mall-tiny-plus/pom.xml +++ b/mall-tiny-plus/pom.xml @@ -2,25 +2,17 @@ 4.0.0 - com.macro.mall mall-tiny-plus - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-plus - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - + Demo project for MyBatis-Plus - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -44,24 +36,19 @@ com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} mysql mysql-connector-java - 8.0.16 + ${mysql-connector.version} - + io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} @@ -73,25 +60,25 @@ cn.hutool hutool-all - 4.5.7 + ${hutool.version} com.baomidou mybatis-plus-boot-starter - 3.3.2 + 3.5.3 com.baomidou mybatis-plus-generator - 3.3.2 + 3.5.3 org.apache.velocity velocity-engine-core - 2.2 + 2.3 @@ -101,35 +88,6 @@ org.springframework.boot spring-boot-maven-plugin - - com.spotify - docker-maven-plugin - 1.2.2 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - https://192.168.3.101:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - I:\developer\env\docker-ca - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index b609b51d..6e413fd7 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index 15549767..e0ea7ee9 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -1,22 +1,30 @@ package com.macro.mall.tiny.config; -import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration -@MapperScan("com.macro.mall.tiny.modules.*.mapper") +@EnableTransactionManagement +@MapperScan({"com.macro.mall.tiny.modules.*.mapper"}) public class MyBatisConfig { + @Bean - public PaginationInterceptor paginationInterceptor() { - PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); - paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true)); - return paginationInterceptor; + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + return interceptor; } + } diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 2a406904..9a4db8ae 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,29 +1,39 @@ package com.macro.mall.tiny.config; -import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置 + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) + .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.modules")) .paths(PathSelectors.any()) .build(); } @@ -32,8 +42,41 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/generator/MyBatisPlusGenerator.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/generator/MyBatisPlusGenerator.java index d58cb4b2..d3871055 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/generator/MyBatisPlusGenerator.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/generator/MyBatisPlusGenerator.java @@ -3,23 +3,23 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.setting.dialect.Props; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; -import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.po.LikeTable; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine; +import com.baomidou.mybatisplus.generator.query.SQLQuery; -import java.util.ArrayList; -import java.util.List; +import java.util.Collections; import java.util.Scanner; /** - * MyBatisPlus代码生成器 - * Created by macro on 2020/8/20. + * @auther macrozheng + * @description MyBatisPlus代码生成器 + * @date 2020/8/20 + * @github https://github.com/macrozheng */ public class MyBatisPlusGenerator { @@ -28,15 +28,13 @@ public static void main(String[] args) { String moduleName = scanner("模块名"); String[] tableNames = scanner("表名,多个英文逗号分割").split(","); // 代码生成器 - AutoGenerator autoGenerator = new AutoGenerator(); - autoGenerator.setGlobalConfig(initGlobalConfig(projectPath)); - autoGenerator.setDataSource(initDataSourceConfig()); - autoGenerator.setPackageInfo(initPackageConfig(moduleName)); - autoGenerator.setCfg(initInjectionConfig(projectPath, moduleName)); - autoGenerator.setTemplate(initTemplateConfig()); - autoGenerator.setStrategy(initStrategyConfig(tableNames)); - autoGenerator.setTemplateEngine(new VelocityTemplateEngine()); - autoGenerator.execute(); + AutoGenerator autoGenerator = new AutoGenerator(initDataSourceConfig()); + autoGenerator.global(initGlobalConfig(projectPath)); + autoGenerator.packageInfo(initPackageConfig(projectPath,moduleName)); + autoGenerator.injection(initInjectionConfig(projectPath, moduleName)); + autoGenerator.template(initTemplateConfig()); + autoGenerator.strategy(initStrategyConfig(tableNames)); + autoGenerator.execute(new VelocityTemplateEngine()); } /** @@ -58,21 +56,13 @@ private static String scanner(String tip) { * 初始化全局配置 */ private static GlobalConfig initGlobalConfig(String projectPath) { - GlobalConfig globalConfig = new GlobalConfig(); - globalConfig.setOutputDir(projectPath + "/src/main/java"); - globalConfig.setAuthor("macro"); - globalConfig.setOpen(false); - globalConfig.setSwagger2(true); - globalConfig.setBaseResultMap(true); - globalConfig.setFileOverride(true); - globalConfig.setDateType(DateType.ONLY_DATE); - globalConfig.setEntityName("%s"); - globalConfig.setMapperName("%sMapper"); - globalConfig.setXmlName("%sMapper"); - globalConfig.setServiceName("%sService"); - globalConfig.setServiceImplName("%sServiceImpl"); - globalConfig.setControllerName("%sController"); - return globalConfig; + return new GlobalConfig.Builder() + .outputDir(projectPath + "/src/main/java") + .author("macro") + .disableOpenDir() + .enableSwagger() + .dateType(DateType.ONLY_DATE) + .build(); } /** @@ -80,55 +70,83 @@ private static GlobalConfig initGlobalConfig(String projectPath) { */ private static DataSourceConfig initDataSourceConfig() { Props props = new Props("generator.properties"); - DataSourceConfig dataSourceConfig = new DataSourceConfig(); - dataSourceConfig.setUrl(props.getStr("dataSource.url")); - dataSourceConfig.setDriverName(props.getStr("dataSource.driverName")); - dataSourceConfig.setUsername(props.getStr("dataSource.username")); - dataSourceConfig.setPassword(props.getStr("dataSource.password")); - return dataSourceConfig; + String url = props.getStr("dataSource.url"); + String username = props.getStr("dataSource.username"); + String password = props.getStr("dataSource.password"); + return new DataSourceConfig.Builder(url,username,password) + .dbQuery(new MySqlQuery()) + .databaseQueryClass(SQLQuery.class) + .build(); } /** * 初始化包配置 */ - private static PackageConfig initPackageConfig(String moduleName) { + private static PackageConfig initPackageConfig(String projectPath,String moduleName) { Props props = new Props("generator.properties"); - PackageConfig packageConfig = new PackageConfig(); - packageConfig.setModuleName(moduleName); - packageConfig.setParent(props.getStr("package.base")); - packageConfig.setEntity("model"); - return packageConfig; + return new PackageConfig.Builder() + .moduleName(moduleName) + .parent(props.getStr("package.base")) + .entity("model") + .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "/src/main/resources/mapper/" + moduleName)) + .build(); } +// /** +// * 初始化模板配置 +// */ +// private static TemplateConfig initTemplateConfig() { +// //可以对controller、service、entity模板进行配置 +// return new TemplateConfig.Builder().build(); +// } + /** * 初始化模板配置 */ private static TemplateConfig initTemplateConfig() { - TemplateConfig templateConfig = new TemplateConfig(); //可以对controller、service、entity模板进行配置 - //mapper.xml模板需单独配置 - templateConfig.setXml(null); - return templateConfig; + return new TemplateConfig.Builder() + .entity("templates/entity.java") + .mapper("templates/mapper.java") + .controller("templates/controller.java") + .service("templates/service.java") + .serviceImpl("templates/serviceImpl.java") + .xml("/templates/mapper.xml") + .build(); } /** * 初始化策略配置 */ private static StrategyConfig initStrategyConfig(String[] tableNames) { - StrategyConfig strategyConfig = new StrategyConfig(); - strategyConfig.setNaming(NamingStrategy.underline_to_camel); - strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); - strategyConfig.setEntityLombokModel(true); - strategyConfig.setRestControllerStyle(true); + StrategyConfig.Builder builder = new StrategyConfig.Builder(); + builder.entityBuilder() + .enableFileOverride() + .naming(NamingStrategy.underline_to_camel) + .columnNaming(NamingStrategy.underline_to_camel) + .enableLombok() + .formatFileName("%s") + .mapperBuilder() + .enableFileOverride() + .enableBaseResultMap() + .formatMapperFileName("%sMapper") + .formatXmlFileName("%sMapper") + .serviceBuilder() + .enableFileOverride() + .formatServiceFileName("%sService") + .formatServiceImplFileName("%sServiceImpl") + .controllerBuilder() + .enableRestStyle() + .formatFileName("%sController"); //当表名中带*号时可以启用通配符模式 if (tableNames.length == 1 && tableNames[0].contains("*")) { String[] likeStr = tableNames[0].split("_"); String likePrefix = likeStr[0] + "_"; - strategyConfig.setLikeTable(new LikeTable(likePrefix)); + builder.likeTable(new LikeTable(likePrefix)); } else { - strategyConfig.setInclude(tableNames); + builder.addInclude(tableNames); } - return strategyConfig; + return builder.build(); } /** @@ -136,27 +154,7 @@ private static StrategyConfig initStrategyConfig(String[] tableNames) { */ private static InjectionConfig initInjectionConfig(String projectPath, String moduleName) { // 自定义配置 - InjectionConfig injectionConfig = new InjectionConfig() { - @Override - public void initMap() { - // 可用于自定义属性 - } - }; - // 模板引擎是Velocity - String templatePath = "/templates/mapper.xml.vm"; - // 自定义输出配置 - List focList = new ArrayList<>(); - // 自定义配置会被优先输出 - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!! - return projectPath + "/src/main/resources/mapper/" + moduleName - + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; - } - }); - injectionConfig.setFileOutConfigList(focList); - return injectionConfig; + return new InjectionConfig.Builder().build(); } } \ No newline at end of file diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/mapper/PmsBrandMapper.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/mapper/PmsBrandMapper.java index 4039a62e..44097c83 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/mapper/PmsBrandMapper.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/mapper/PmsBrandMapper.java @@ -9,7 +9,7 @@ *

* * @author macro - * @since 2020-08-20 + * @since 2023-02-07 */ public interface PmsBrandMapper extends BaseMapper { diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/model/PmsBrand.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/model/PmsBrand.java index e497cc7e..3fbadb0a 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/model/PmsBrand.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/model/PmsBrand.java @@ -1,13 +1,13 @@ package com.macro.mall.tiny.modules.pms.model; -import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; /** *

@@ -15,45 +15,43 @@ *

* * @author macro - * @since 2020-08-20 + * @since 2023-02-07 */ -@Data -@EqualsAndHashCode(callSuper = false) +@Getter +@Setter @TableName("pms_brand") -@ApiModel(value="PmsBrand对象", description="品牌表") +@ApiModel(value = "PmsBrand对象", description = "品牌表") public class PmsBrand implements Serializable { - private static final long serialVersionUID=1L; + private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; private String name; - @ApiModelProperty(value = "首字母") + @ApiModelProperty("首字母") private String firstLetter; private Integer sort; - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") + @ApiModelProperty("是否为品牌制造商:0->不是;1->是") private Integer factoryStatus; private Integer showStatus; - @ApiModelProperty(value = "产品数量") + @ApiModelProperty("产品数量") private Integer productCount; - @ApiModelProperty(value = "产品评论数量") + @ApiModelProperty("产品评论数量") private Integer productCommentCount; - @ApiModelProperty(value = "品牌logo") + @ApiModelProperty("品牌logo") private String logo; - @ApiModelProperty(value = "专区大图") + @ApiModelProperty("专区大图") private String bigPic; - @ApiModelProperty(value = "品牌故事") + @ApiModelProperty("品牌故事") private String brandStory; - - } diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/service/PmsBrandService.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/service/PmsBrandService.java index 33cad713..dd72b8a0 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/service/PmsBrandService.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/service/PmsBrandService.java @@ -2,7 +2,6 @@ import com.macro.mall.tiny.modules.pms.model.PmsBrand; import com.baomidou.mybatisplus.extension.service.IService; -import org.springframework.stereotype.Service; /** *

@@ -10,7 +9,7 @@ *

* * @author macro - * @since 2020-08-20 + * @since 2023-02-07 */ public interface PmsBrandService extends IService { diff --git a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/service/impl/PmsBrandServiceImpl.java b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/service/impl/PmsBrandServiceImpl.java index 3e0766b0..469c5ea8 100644 --- a/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-plus/src/main/java/com/macro/mall/tiny/modules/pms/service/impl/PmsBrandServiceImpl.java @@ -12,7 +12,7 @@ *

* * @author macro - * @since 2020-08-20 + * @since 2023-02-07 */ @Service public class PmsBrandServiceImpl extends ServiceImpl implements PmsBrandService { diff --git a/mall-tiny-plus/src/main/resources/application.yml b/mall-tiny-plus/src/main/resources/application.yml index 43e00a03..2861da55 100644 --- a/mall-tiny-plus/src/main/resources/application.yml +++ b/mall-tiny-plus/src/main/resources/application.yml @@ -3,9 +3,12 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ant_path_matcher mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml #指定mapper.xml路径 diff --git a/mall-tiny-plus/src/main/resources/generator.properties b/mall-tiny-plus/src/main/resources/generator.properties index 931fc603..c7fe9cda 100644 --- a/mall-tiny-plus/src/main/resources/generator.properties +++ b/mall-tiny-plus/src/main/resources/generator.properties @@ -1,4 +1,4 @@ -dataSource.url=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +dataSource.url=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai dataSource.driverName=com.mysql.cj.jdbc.Driver dataSource.username=root dataSource.password=root diff --git a/mall-tiny-plus/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-plus/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-plus/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-plus/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-plus/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-plus/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-plus/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-powerjob/.gitignore b/mall-tiny-powerjob/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-powerjob/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-powerjob/pom.xml b/mall-tiny-powerjob/pom.xml deleted file mode 100644 index 9f9eb55a..00000000 --- a/mall-tiny-powerjob/pom.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-powerjob - 1.0-SNAPSHOT - mall-tiny-powerjob - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.projectlombok - lombok - true - - - - com.github.kfcfans - powerjob-worker-spring-boot-starter - 3.2.3 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - com.spotify - docker-maven-plugin - 1.2.2 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - http://192.168.5.94:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - - - - - diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 857c9eca..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/job/StandaloneProcessor.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/job/StandaloneProcessor.java deleted file mode 100644 index 0ee62ac0..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/job/StandaloneProcessor.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.job; - -import com.github.kfcfans.powerjob.worker.core.processor.ProcessResult; -import com.github.kfcfans.powerjob.worker.core.processor.TaskContext; -import com.github.kfcfans.powerjob.worker.core.processor.sdk.BasicProcessor; -import com.github.kfcfans.powerjob.worker.log.OmsLogger; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -@Slf4j -@Component -public class StandaloneProcessor implements BasicProcessor { - - @Override - public ProcessResult process(TaskContext context){ - //OmsLogger可以直接将日志上报到powerjob-server - OmsLogger omsLogger = context.getOmsLogger(); - omsLogger.info("StandaloneProcessor start process,context is {}.", context); - log.info("jobParams is {}", context.getJobParams()); - return new ProcessResult(true, "Process success!"); - } -} \ No newline at end of file diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-powerjob/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-powerjob/src/main/resources/application.yml b/mall-tiny-powerjob/src/main/resources/application.yml deleted file mode 100644 index 6cfc8d66..00000000 --- a/mall-tiny-powerjob/src/main/resources/application.yml +++ /dev/null @@ -1,22 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - application: - name: mall-tiny-powerjob - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -powerjob: - worker: - akka-port: 27777 # akka 工作端口 - app-name: mall-tiny-powerjob # 接入应用名称,用于分组隔离 - server-address: 192.168.3.101:7700 # 调度服务器地址 - store-strategy: disk # 持久化方式 diff --git a/mall-tiny-powerjob/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-powerjob/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-powerjob/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-powerjob/src/main/resources/generator.properties b/mall-tiny-powerjob/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-powerjob/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-powerjob/src/main/resources/generatorConfig.xml b/mall-tiny-powerjob/src/main/resources/generatorConfig.xml deleted file mode 100644 index 714c94d6..00000000 --- a/mall-tiny-powerjob/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-powerjob/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-powerjob/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-powerjob/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-powerjob/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-powerjob/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-powerjob/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-pulsar/.gitignore b/mall-tiny-pulsar/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-pulsar/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-pulsar/pom.xml b/mall-tiny-pulsar/pom.xml deleted file mode 100644 index 6a4a7484..00000000 --- a/mall-tiny-pulsar/pom.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-pulsar - 1.0-SNAPSHOT - mall-tiny-pulsar - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.4.5 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - io.github.majusko - pulsar-java-spring-boot-starter - 1.0.4 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/component/PulsarProducer.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/component/PulsarProducer.java deleted file mode 100644 index 4f6cbba4..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/component/PulsarProducer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.dto.MessageDto; -import io.github.majusko.pulsar.producer.PulsarTemplate; -import org.apache.pulsar.client.api.PulsarClientException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -/** - * Pulsar消息生产者 - * Created by macro on 2021/5/19. - */ -@Component -public class PulsarProducer { - @Autowired - private PulsarTemplate template; - - public void send(MessageDto message){ - try { - template.send("bootTopic",message); - } catch (PulsarClientException e) { - e.printStackTrace(); - } - } -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/component/PulsarRealConsumer.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/component/PulsarRealConsumer.java deleted file mode 100644 index 8e6a7146..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/component/PulsarRealConsumer.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.dto.MessageDto; -import io.github.majusko.pulsar.annotation.PulsarConsumer; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -/** - * Pulsar消息消费者 - * Created by macro on 2021/5/19. - */ -@Slf4j -@Component -public class PulsarRealConsumer { - - @PulsarConsumer(topic="bootTopic", clazz= MessageDto.class) - public void consume(MessageDto message) { - log.info("PulsarRealConsumer consume id:{},content:{}",message.getId(),message.getContent()); - } - -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/config/PulsarConfig.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/config/PulsarConfig.java deleted file mode 100644 index 77b830ea..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/config/PulsarConfig.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.dto.MessageDto; -import io.github.majusko.pulsar.producer.ProducerFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * Pulsar配置类 - * Created by macro on 2021/5/21. - */ -@Configuration -public class PulsarConfig { - @Bean - public ProducerFactory producerFactory() { - return new ProducerFactory() - .addProducer("bootTopic", MessageDto.class) - .addProducer("stringTopic", String.class); - } -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 3918a401..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.macro.mall.tiny.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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/controller/PulsarController.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/controller/PulsarController.java deleted file mode 100644 index 785feee2..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/controller/PulsarController.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.component.PulsarProducer; -import com.macro.mall.tiny.dto.MessageDto; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -/** - * Pulsar功能测试 - * Created by macro on 2021/5/19. - */ -@Api(tags = "PulsarController", description = "Pulsar功能测试") -@Controller -@RequestMapping("/pulsar") -public class PulsarController { - - @Autowired - private PulsarProducer pulsarProducer; - - @ApiOperation("发送消息") - @RequestMapping(value = "/sendMessage", method = RequestMethod.POST) - @ResponseBody - public CommonResult sendMessage(@RequestBody MessageDto message) { - pulsarProducer.send(message); - return CommonResult.success(null); - } -} diff --git a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/dto/MessageDto.java b/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/dto/MessageDto.java deleted file mode 100644 index 39cd1378..00000000 --- a/mall-tiny-pulsar/src/main/java/com/macro/mall/tiny/dto/MessageDto.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.macro.mall.tiny.dto; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 消息封装 - * Created by macro on 2021/5/21. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class MessageDto { - private Long id; - private String content; -} diff --git a/mall-tiny-pulsar/src/main/resources/application.yml b/mall-tiny-pulsar/src/main/resources/application.yml deleted file mode 100644 index 6c350fc9..00000000 --- a/mall-tiny-pulsar/src/main/resources/application.yml +++ /dev/null @@ -1,4 +0,0 @@ -server: - port: 8088 -pulsar: - service-url: pulsar://192.168.5.78:6650 \ No newline at end of file diff --git a/mall-tiny-quartz/.gitignore b/mall-tiny-quartz/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-quartz/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-quartz/pom.xml b/mall-tiny-quartz/pom.xml deleted file mode 100644 index d5d6d2f6..00000000 --- a/mall-tiny-quartz/pom.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-quartz - 1.0-SNAPSHOT - mall-tiny-quartz - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 - - - io.springfox - springfox-swagger-ui - 2.7.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - org.springframework.boot - spring-boot-starter-quartz - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index ae1d4ba5..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.config; - -import io.swagger.annotations.Api; -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; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 - .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact("macro") - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 758193d1..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -//@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/controller/ScheduleController.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/controller/ScheduleController.java deleted file mode 100644 index cad9b09a..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/controller/ScheduleController.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.macro.mall.tiny.controller; - -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.job.CronProcessJob; -import com.macro.mall.tiny.job.SendEmailJob; -import com.macro.mall.tiny.job.SendMessageJob; -import com.macro.mall.tiny.service.ScheduleService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Date; - -/** - * 定时任务调度相关接口 - * Created by macro on 2020/9/29. - */ -@Api(tags = "ScheduleController", description = "定时任务调度相关接口") -@RestController -@RequestMapping("/schedule") -public class ScheduleController { - @Autowired - private ScheduleService scheduleService; - - @ApiOperation("定时发送邮件") - @PostMapping("/sendEmail") - public CommonResult sendEmail(@RequestParam String startTime,@RequestParam String data) { - Date date = DateUtil.parse(startTime, DatePattern.NORM_DATETIME_FORMAT); - String jobName = scheduleService.scheduleFixTimeJob(SendEmailJob.class, date, data); - return CommonResult.success(jobName); - } - - @ApiOperation("定时发送站内信") - @PostMapping("/sendMessage") - public CommonResult sendMessage(@RequestParam String startTime,@RequestParam String data) { - Date date = DateUtil.parse(startTime, DatePattern.NORM_DATETIME_FORMAT); - String jobName = scheduleService.scheduleFixTimeJob(SendMessageJob.class, date, data); - return CommonResult.success(jobName); - } - - @ApiOperation("通过CRON表达式调度任务") - @PostMapping("/scheduleJob") - public CommonResult scheduleJob(@RequestParam String cron, @RequestParam String data) { - String jobName = scheduleService.scheduleJob(CronProcessJob.class, cron, data); - return CommonResult.success(jobName); - } - - @ApiOperation("取消定时任务") - @PostMapping("/cancelScheduleJob") - public CommonResult cancelScheduleJob(@RequestParam String jobName) { - Boolean success = scheduleService.cancelScheduleJob(jobName); - return CommonResult.success(success); - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/CronProcessJob.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/CronProcessJob.java deleted file mode 100644 index 4c86fa1a..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/CronProcessJob.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.job; - -import lombok.extern.slf4j.Slf4j; -import org.quartz.*; -import org.springframework.scheduling.quartz.QuartzJobBean; -import org.springframework.stereotype.Component; - -/** - * 使用CRON表达式的任务执行器 - * Created by macro on 2020/9/29. - */ -@Slf4j -@Component -public class CronProcessJob extends QuartzJobBean { - @Override - protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { - JobDetail jobDetail = jobExecutionContext.getJobDetail(); - JobDataMap jobDataMap = jobDetail.getJobDataMap(); - String data = jobDataMap.getString("data"); - log.info("CRON表达式任务执行:{}",data); - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/SendEmailJob.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/SendEmailJob.java deleted file mode 100644 index 274bb187..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/SendEmailJob.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.job; - -import com.macro.mall.tiny.service.ScheduleService; -import lombok.extern.slf4j.Slf4j; -import org.quartz.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.quartz.QuartzJobBean; -import org.springframework.stereotype.Component; - -/** - * 发送邮件定时任务执行器 - * Created by macro on 2020/9/27. - */ -@Slf4j -@Component -public class SendEmailJob extends QuartzJobBean { - @Autowired - private ScheduleService scheduleService; - - @Override - protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { - Trigger trigger = jobExecutionContext.getTrigger(); - JobDetail jobDetail = jobExecutionContext.getJobDetail(); - JobDataMap jobDataMap = jobDetail.getJobDataMap(); - String data = jobDataMap.getString("data"); - log.info("定时发送邮件操作:{}",data); - //完成后删除触发器和任务 - scheduleService.cancelScheduleJob(trigger.getKey().getName()); - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/SendMessageJob.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/SendMessageJob.java deleted file mode 100644 index da1c15ac..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/job/SendMessageJob.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.job; - -import com.macro.mall.tiny.service.ScheduleService; -import lombok.extern.slf4j.Slf4j; -import org.quartz.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.quartz.QuartzJobBean; -import org.springframework.stereotype.Component; - -/** - * 发送站内信定时任务执行器 - * Created by macro on 2020/9/27. - */ -@Slf4j -@Component -public class SendMessageJob extends QuartzJobBean { - @Autowired - private ScheduleService scheduleService; - - @Override - protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { - Trigger trigger = jobExecutionContext.getTrigger(); - JobDetail jobDetail = jobExecutionContext.getJobDetail(); - JobDataMap jobDataMap = jobDetail.getJobDataMap(); - String data = jobDataMap.getString("data"); - log.info("定时发送站内信操作:{}",data); - //完成后删除触发器和任务 - scheduleService.cancelScheduleJob(trigger.getKey().getName()); - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/ScheduleService.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/ScheduleService.java deleted file mode 100644 index ea1f3095..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/ScheduleService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.macro.mall.tiny.service; - -import org.quartz.Job; - -import java.util.Date; - -/** - * Quartz定时任务操作类 - * Created by macro on 2020/9/27. - */ -public interface ScheduleService { - /** - * 通过CRON表达式调度任务 - */ - String scheduleJob(Class jobBeanClass, String cron, String data); - - /** - * 调度指定时间的任务 - */ - String scheduleFixTimeJob(Class jobBeanClass, Date startTime, String data); - - /** - * 取消定时任务 - */ - Boolean cancelScheduleJob(String jobName); -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/impl/ScheduleServiceImpl.java b/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/impl/ScheduleServiceImpl.java deleted file mode 100644 index 3c868ea4..00000000 --- a/mall-tiny-quartz/src/main/java/com/macro/mall/tiny/service/impl/ScheduleServiceImpl.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.UUID; -import com.macro.mall.tiny.service.ScheduleService; -import lombok.extern.slf4j.Slf4j; -import org.quartz.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.Date; - -/** - * Quartz定时任务操作实现类 - * Created by macro on 2020/9/27. - */ -@Slf4j -@Service -public class ScheduleServiceImpl implements ScheduleService { - @Autowired - private Scheduler scheduler; - private String defaultGroup = "default_group"; - - @Override - public String scheduleJob(Class jobBeanClass, String cron, String data) { - // 创建需要执行的任务 - String jobName = UUID.fastUUID().toString(); - JobDetail jobDetail = JobBuilder.newJob(jobBeanClass) - .withIdentity(jobName, defaultGroup) - .usingJobData("data", data) - .build(); - //创建触发器,指定任务执行时间 - CronTrigger cronTrigger = TriggerBuilder.newTrigger() - .withIdentity(jobName, defaultGroup) - .withSchedule(CronScheduleBuilder.cronSchedule(cron)) - .build(); - //使用调度器进行任务调度 - try { - scheduler.scheduleJob(jobDetail, cronTrigger); - } catch (SchedulerException e) { - e.printStackTrace(); - log.info("创建定时任务失败!"); - } - return jobName; - } - - @Override - public String scheduleFixTimeJob(Class jobBeanClass, Date startTime, String data) { - //日期转CRON表达式 - String startCron = String.format("%d %d %d %d %d ? %d", - DateUtil.second(startTime), - DateUtil.minute(startTime), - DateUtil.hour(startTime, true), - DateUtil.dayOfMonth(startTime), - DateUtil.month(startTime) + 1, - DateUtil.year(startTime)); - return scheduleJob(jobBeanClass, startCron, data); - } - - @Override - public Boolean cancelScheduleJob(String jobName) { - boolean success = false; - try { - // 暂停触发器 - scheduler.pauseTrigger(new TriggerKey(jobName, defaultGroup)); - // 移除触发器中的任务 - scheduler.unscheduleJob(new TriggerKey(jobName, defaultGroup)); - // 删除任务 - scheduler.deleteJob(new JobKey(jobName, defaultGroup)); - success = true; - } catch (SchedulerException e) { - e.printStackTrace(); - } - return success; - } -} diff --git a/mall-tiny-quartz/src/main/resources/application.yml b/mall-tiny-quartz/src/main/resources/application.yml deleted file mode 100644 index 78bc6880..00000000 --- a/mall-tiny-quartz/src/main/resources/application.yml +++ /dev/null @@ -1,33 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - quartz: - job-store-type: jdbc # quartz任务存储类型:jdbc或memory - wait-for-jobs-to-complete-on-shutdown: true # 关闭是等待任务完成 - overwrite-existing-jobs: true # 可以覆盖已有的任务 - properties: # quartz原生配置 - org: - quartz: - scheduler: - instanceName: scheduler # 调度器实例名称 - instanceId: AUTO # 调度器实例ID自动生成 - jobStore: - class: org.quartz.impl.jdbcjobstore.JobStoreTX # 调度信息存储处理类 - driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate # 使用完全兼容JDBC的驱动 - tablePrefix: QRTZ_ # quartz相关表前缀 - useProperties: false # 是否将JobDataMap中的属性转为字符串存储 - threadPool: - class: org.quartz.simpl.SimpleThreadPool # 指定线程池实现类,对调度器提供固定大小的线程池 - threadCount: 10 # 设置并发线程数量 - threadPriority: 5 # 指定线程优先级 - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - diff --git a/mall-tiny-quartz/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-quartz/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-quartz/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-quartz/src/main/resources/generator.properties b/mall-tiny-quartz/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-quartz/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-quartz/src/main/resources/generatorConfig.xml b/mall-tiny-quartz/src/main/resources/generatorConfig.xml deleted file mode 100644 index 7ab9b2da..00000000 --- a/mall-tiny-quartz/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-quartz/src/main/resources/tables_mysql.sql b/mall-tiny-quartz/src/main/resources/tables_mysql.sql deleted file mode 100644 index f33e52f2..00000000 --- a/mall-tiny-quartz/src/main/resources/tables_mysql.sql +++ /dev/null @@ -1,168 +0,0 @@ -# -# Quartz seems to work best with the driver mm.mysql-2.0.7-bin.jar -# -# PLEASE consider using mysql with innodb tables to avoid locking issues -# -# In your Quartz properties file, you'll need to set -# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate -# - -DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; -DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; -DROP TABLE IF EXISTS QRTZ_LOCKS; -DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_TRIGGERS; -DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; -DROP TABLE IF EXISTS QRTZ_CALENDARS; - - -CREATE TABLE QRTZ_JOB_DETAILS -( - SCHED_NAME VARCHAR(120) NOT NULL, - JOB_NAME VARCHAR(200) NOT NULL, - JOB_GROUP VARCHAR(200) NOT NULL, - DESCRIPTION VARCHAR(250) NULL, - JOB_CLASS_NAME VARCHAR(250) NOT NULL, - IS_DURABLE VARCHAR(1) NOT NULL, - IS_NONCONCURRENT VARCHAR(1) NOT NULL, - IS_UPDATE_DATA VARCHAR(1) NOT NULL, - REQUESTS_RECOVERY VARCHAR(1) NOT NULL, - JOB_DATA BLOB NULL, - PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) -); - -CREATE TABLE QRTZ_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - JOB_NAME VARCHAR(200) NOT NULL, - JOB_GROUP VARCHAR(200) NOT NULL, - DESCRIPTION VARCHAR(250) NULL, - NEXT_FIRE_TIME BIGINT(13) NULL, - PREV_FIRE_TIME BIGINT(13) NULL, - PRIORITY INTEGER NULL, - TRIGGER_STATE VARCHAR(16) NOT NULL, - TRIGGER_TYPE VARCHAR(8) NOT NULL, - START_TIME BIGINT(13) NOT NULL, - END_TIME BIGINT(13) NULL, - CALENDAR_NAME VARCHAR(200) NULL, - MISFIRE_INSTR SMALLINT(2) NULL, - JOB_DATA BLOB NULL, - PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) - REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) -); - -CREATE TABLE QRTZ_SIMPLE_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - REPEAT_COUNT BIGINT(7) NOT NULL, - REPEAT_INTERVAL BIGINT(12) NOT NULL, - TIMES_TRIGGERED BIGINT(10) NOT NULL, - PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) - REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_CRON_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - CRON_EXPRESSION VARCHAR(200) NOT NULL, - TIME_ZONE_ID VARCHAR(80), - PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) - REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_SIMPROP_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - STR_PROP_1 VARCHAR(512) NULL, - STR_PROP_2 VARCHAR(512) NULL, - STR_PROP_3 VARCHAR(512) NULL, - INT_PROP_1 INT NULL, - INT_PROP_2 INT NULL, - LONG_PROP_1 BIGINT NULL, - LONG_PROP_2 BIGINT NULL, - DEC_PROP_1 NUMERIC(13,4) NULL, - DEC_PROP_2 NUMERIC(13,4) NULL, - BOOL_PROP_1 VARCHAR(1) NULL, - BOOL_PROP_2 VARCHAR(1) NULL, - PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) - REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_BLOB_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - BLOB_DATA BLOB NULL, - PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), - FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) - REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_CALENDARS -( - SCHED_NAME VARCHAR(120) NOT NULL, - CALENDAR_NAME VARCHAR(200) NOT NULL, - CALENDAR BLOB NOT NULL, - PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) -); - -CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS -( - SCHED_NAME VARCHAR(120) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) -); - -CREATE TABLE QRTZ_FIRED_TRIGGERS -( - SCHED_NAME VARCHAR(120) NOT NULL, - ENTRY_ID VARCHAR(95) NOT NULL, - TRIGGER_NAME VARCHAR(200) NOT NULL, - TRIGGER_GROUP VARCHAR(200) NOT NULL, - INSTANCE_NAME VARCHAR(200) NOT NULL, - FIRED_TIME BIGINT(13) NOT NULL, - SCHED_TIME BIGINT(13) NOT NULL, - PRIORITY INTEGER NOT NULL, - STATE VARCHAR(16) NOT NULL, - JOB_NAME VARCHAR(200) NULL, - JOB_GROUP VARCHAR(200) NULL, - IS_NONCONCURRENT VARCHAR(1) NULL, - REQUESTS_RECOVERY VARCHAR(1) NULL, - PRIMARY KEY (SCHED_NAME,ENTRY_ID) -); - -CREATE TABLE QRTZ_SCHEDULER_STATE -( - SCHED_NAME VARCHAR(120) NOT NULL, - INSTANCE_NAME VARCHAR(200) NOT NULL, - LAST_CHECKIN_TIME BIGINT(13) NOT NULL, - CHECKIN_INTERVAL BIGINT(13) NOT NULL, - PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) -); - -CREATE TABLE QRTZ_LOCKS -( - SCHED_NAME VARCHAR(120) NOT NULL, - LOCK_NAME VARCHAR(40) NOT NULL, - PRIMARY KEY (SCHED_NAME,LOCK_NAME) -); - - -commit; \ No newline at end of file diff --git a/mall-tiny-quartz/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-quartz/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-quartz/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-quartz/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-quartz/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-quartz/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-rabbit/pom.xml b/mall-tiny-rabbit/pom.xml index 85b010d4..7025f131 100644 --- a/mall-tiny-rabbit/pom.xml +++ b/mall-tiny-rabbit/pom.xml @@ -2,25 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-rabbit 1.0-SNAPSHOT mall-tiny-rabbit Demo project for RabbitMQ - - UTF-8 - UTF-8 - 1.8 - true - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -40,22 +33,17 @@ spring-boot-starter-test test - - - io.springfox - springfox-swagger2 - 2.7.0 - + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} cn.hutool hutool-all - 4.6.3 + ${hutool.version} diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 3918a401..313ba912 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,42 +1,118 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; +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 springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger2API文档的配置 + * @date 2022/11/21 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) - .build(); + .build() + //添加登录认证 + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .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("/brand/.*")); + 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; + } + + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + } diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/controller/RabbitController.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/controller/RabbitController.java index bda50221..eff928d4 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/controller/RabbitController.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/controller/RabbitController.java @@ -9,6 +9,7 @@ import com.macro.mall.tiny.work.WorkSender; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,10 +17,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description RabbitMQ功能测试Controller + * @date 2020/5/19 + * @github https://github.com/macrozheng */ -@Api(tags = "RabbitController", description = "RabbitMQ功能测试") @Controller +@Api(tags = "RabbitController") +@Tag(name = "RabbitController", description = "RabbitMQ功能测试") @RequestMapping("/rabbit") public class RabbitController { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectRabbitConfig.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectRabbitConfig.java index 4f6c4310..2ddc19f4 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectRabbitConfig.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectRabbitConfig.java @@ -21,7 +21,10 @@ import org.springframework.context.annotation.Profile; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 路由模式消息队列配置 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ @Configuration public class DirectRabbitConfig { @@ -46,11 +49,6 @@ public Binding directBinding1a(DirectExchange direct, Queue directQueue1) { return BindingBuilder.bind(directQueue1).to(direct).with("orange"); } - @Bean - public Binding directBinding1b(DirectExchange direct, Queue directQueue1) { - return BindingBuilder.bind(directQueue1).to(direct).with("black"); - } - @Bean public Binding directBinding2a(DirectExchange direct, Queue directQueue2) { return BindingBuilder.bind(directQueue2).to(direct).with("green"); diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectReceiver.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectReceiver.java index ea616b57..db8663b6 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectReceiver.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectReceiver.java @@ -22,7 +22,10 @@ import org.springframework.util.StopWatch; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 路由模式消费者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ public class DirectReceiver { private static final Logger LOGGER = LoggerFactory.getLogger(DirectReceiver.class); diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectSender.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectSender.java index 3d55a5a6..253e0ddd 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectSender.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/direct/DirectSender.java @@ -21,7 +21,10 @@ import org.springframework.beans.factory.annotation.Autowired; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 路由模式生产者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ public class DirectSender { @@ -40,6 +43,9 @@ public void send(int index) { String key = keys[limitIndex]; builder.append(key).append(' '); builder.append(index+1); + for (int i = 0; i <= limitIndex; i++) { + builder.append('.'); + } String message = builder.toString(); template.convertAndSend(exchangeName, key, message); LOGGER.info(" [x] Sent '{}'", message); diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutRabbitConfig.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutRabbitConfig.java index f94e7011..7ead9911 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutRabbitConfig.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutRabbitConfig.java @@ -21,7 +21,10 @@ import org.springframework.context.annotation.Profile; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 发布/订阅模式消息队列配置 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ @Configuration public class FanoutRabbitConfig { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutReceiver.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutReceiver.java index dc3a1c29..93045f2b 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutReceiver.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutReceiver.java @@ -23,7 +23,10 @@ import org.springframework.util.StopWatch; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 发布/订阅模式消费者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ public class FanoutReceiver { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutSender.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutSender.java index 8e44c967..6f794441 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutSender.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/fanout/FanoutSender.java @@ -21,7 +21,10 @@ import org.springframework.beans.factory.annotation.Autowired; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 发布/订阅模式生产者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ public class FanoutSender { private static final Logger LOGGER = LoggerFactory.getLogger(FanoutSender.class); diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleRabbitConfig.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleRabbitConfig.java index 2514bc3c..6f0fc5d3 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleRabbitConfig.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleRabbitConfig.java @@ -21,7 +21,10 @@ import org.springframework.context.annotation.Profile; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 简单模式消息队列配置 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ @Configuration public class SimpleRabbitConfig { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleReceiver.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleReceiver.java index 247c9fe1..04034447 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleReceiver.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleReceiver.java @@ -21,7 +21,10 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 简单模式消费者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ @RabbitListener(queues = "simple.hello") public class SimpleReceiver { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleSender.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleSender.java index 92f68437..e7ccf8d3 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleSender.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/simple/SimpleSender.java @@ -21,7 +21,10 @@ import org.springframework.beans.factory.annotation.Autowired; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 简单模式生产者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ public class SimpleSender { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicRabbitConfig.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicRabbitConfig.java index 7af6ef75..5f796d3f 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicRabbitConfig.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicRabbitConfig.java @@ -21,7 +21,10 @@ import org.springframework.context.annotation.Profile; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 通配符模式消息队列配置 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ @Configuration public class TopicRabbitConfig { @@ -47,12 +50,12 @@ public Binding topicBinding1a(TopicExchange topic, Queue topicQueue1) { } @Bean - public Binding topicBinding1b(TopicExchange topic, Queue topicQueue1) { - return BindingBuilder.bind(topicQueue1).to(topic).with("*.*.rabbit"); + public Binding topicBinding2a(TopicExchange topic, Queue topicQueue2) { + return BindingBuilder.bind(topicQueue2).to(topic).with("*.*.rabbit"); } @Bean - public Binding topicBinding2a(TopicExchange topic, Queue topicQueue2) { + public Binding topicBinding2b(TopicExchange topic, Queue topicQueue2) { return BindingBuilder.bind(topicQueue2).to(topic).with("lazy.#"); } diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicReceiver.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicReceiver.java index bd01730c..d669088a 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicReceiver.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicReceiver.java @@ -22,7 +22,10 @@ import org.springframework.util.StopWatch; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 通配符模式消费者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ public class TopicReceiver { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicSender.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicSender.java index 5bb1d90c..a32a440a 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicSender.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/topic/TopicSender.java @@ -21,7 +21,10 @@ import org.springframework.beans.factory.annotation.Autowired; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 通配符模式生产者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ public class TopicSender { @@ -42,6 +45,9 @@ public void send(int index) { String key = keys[limitIndex]; builder.append(key).append(' '); builder.append(index+1); + for (int i = 0; i <= limitIndex; i++) { + builder.append('.'); + } String message = builder.toString(); template.convertAndSend(exchangeName, key, message); LOGGER.info(" [x] Sent '{}'",message); diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkRabbitConfig.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkRabbitConfig.java index 9d83db0f..58576881 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkRabbitConfig.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkRabbitConfig.java @@ -21,7 +21,10 @@ import org.springframework.context.annotation.Profile; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 工作模式消息队列配置 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ @Configuration public class WorkRabbitConfig { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkReceiver.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkReceiver.java index 91973390..b9d7c0b6 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkReceiver.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkReceiver.java @@ -23,7 +23,10 @@ import org.springframework.util.StopWatch; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 工作模式消费者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ @RabbitListener(queues = "work.hello") public class WorkReceiver { diff --git a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkSender.java b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkSender.java index 16d3da15..fdf5ffe4 100644 --- a/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkSender.java +++ b/mall-tiny-rabbit/src/main/java/com/macro/mall/tiny/work/WorkSender.java @@ -21,7 +21,10 @@ import org.springframework.beans.factory.annotation.Autowired; /** - * Created by macro on 2020/5/19. + * @auther macrozheng + * @description 工作模式生产者 + * @date 2020/5/19 + * @github https://github.com/macrozheng */ public class WorkSender { diff --git a/mall-tiny-rabbit/src/main/resources/application.yml b/mall-tiny-rabbit/src/main/resources/application.yml index da3595eb..049b3260 100644 --- a/mall-tiny-rabbit/src/main/resources/application.yml +++ b/mall-tiny-rabbit/src/main/resources/application.yml @@ -1,12 +1,15 @@ server: - port: 8008 + port: 8080 spring: + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER rabbitmq: host: localhost port: 5672 virtual-host: /mall username: mall password: mall - publisher-confirms: true #消息发送到交换器确认 publisher-returns: true #消息发送到队列确认 + publisher-confirm-type: simple #消息发送到交换器确认 diff --git a/mall-tiny-rabbit/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-rabbit/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-rabbit/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-rabbit/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-redis-om/.gitignore b/mall-tiny-redis-om/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-redis-om/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-redis-om/pom.xml b/mall-tiny-redis-om/pom.xml deleted file mode 100644 index 7c3342ef..00000000 --- a/mall-tiny-redis-om/pom.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-redis-om - 1.0-SNAPSHOT - mall-tiny-redis-om - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 11 - true - - - - - snapshots-repo - https://s01.oss.sonatype.org/content/repositories/snapshots/ - - - - - org.springframework.boot - spring-boot-starter-parent - 2.6.2 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - com.redis.om - redis-om-spring - 0.3.0-SNAPSHOT - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 4bbefcd9..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.macro.mall.tiny; - -import com.redis.om.spring.annotations.EnableRedisDocumentRepositories; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -@EnableRedisDocumentRepositories(basePackages = "com.macro.mall.tiny.*") -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 805e1c5f..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.ReflectionUtils; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Contact; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; -import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -import java.lang.reflect.Field; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .version("1.0") - .build(); - } - - @Bean - public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { - return new BeanPostProcessor() { - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { - customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); - } - return bean; - } - - private void customizeSpringfoxHandlerMappings(List mappings) { - List copy = mappings.stream() - .filter(mapping -> mapping.getPatternParser() == null) - .collect(Collectors.toList()); - mappings.clear(); - mappings.addAll(copy); - } - - @SuppressWarnings("unchecked") - private List getHandlerMappings(Object bean) { - try { - Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); - field.setAccessible(true); - return (List) field.get(bean); - } catch (IllegalArgumentException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - }; - } -} diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/controller/ProductController.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/controller/ProductController.java deleted file mode 100644 index fb9c6f49..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/controller/ProductController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.Product; -import com.macro.mall.tiny.repository.ProductRepository; -import com.macro.mall.tiny.util.LocalJsonUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.Optional; - -/** - * 使用Redis OM管理商品 - * Created by macro on 2022/3/1. - */ -@RestController -@Api(tags = "ProductController", description = "使用Redis OM管理商品") -@RequestMapping("/product") -public class ProductController { - - @Autowired - private ProductRepository productRepository; - - @ApiOperation("导入商品") - @PostMapping("/import") - public CommonResult importList() { - productRepository.deleteAll(); - List productList = LocalJsonUtil.getListFromJson("json/products.json", Product.class); - for (Product product : productList) { - productRepository.save(product); - } - return CommonResult.success(null); - } - - @ApiOperation("创建商品") - @PostMapping("/create") - public CommonResult create(@RequestBody Product entity) { - productRepository.save(entity); - return CommonResult.success(null); - } - - @ApiOperation("删除") - @PostMapping("/delete/{id}") - public CommonResult delete(@PathVariable Long id) { - productRepository.deleteById(id); - return CommonResult.success(null); - } - - @ApiOperation("查询单个") - @GetMapping("/detail/{id}") - public CommonResult detail(@PathVariable Long id) { - Optional result = productRepository.findById(id); - return CommonResult.success(result.orElse(null)); - } - - @ApiOperation("分页查询") - @GetMapping("/page") - public CommonResult> page(@RequestParam(defaultValue = "1") Integer pageNum, - @RequestParam(defaultValue = "5") Integer pageSize) { - Pageable pageable = PageRequest.of(pageNum - 1, pageSize); - Page pageResult = productRepository.findAll(pageable); - return CommonResult.success(pageResult.getContent()); - } - - @ApiOperation("根据品牌查询") - @GetMapping("/getByBrandName") - public CommonResult> getByBrandName(String brandName) { - List resultList = productRepository.findByBrandName(brandName); - return CommonResult.success(resultList); - } - - @ApiOperation("根据名称或副标题搜索") - @GetMapping("/search") - public CommonResult> search(String keyword) { - List resultList = productRepository.findByNameOrSubTitle(keyword, keyword); - return CommonResult.success(resultList); - } - -} diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/domain/Product.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/domain/Product.java deleted file mode 100644 index 536dce9d..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/domain/Product.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.macro.mall.tiny.domain; - -import com.redis.om.spring.annotations.Document; -import com.redis.om.spring.annotations.Indexed; -import com.redis.om.spring.annotations.Searchable; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.data.annotation.Id; - -/** - * 商品实体类 - * Created by macro on 2021/10/12. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Document(language = "chinese") -public class Product { - @Id - private Long id; - @Indexed - private String productSn; - @Searchable - private String name; - @Searchable - private String subTitle; - @Indexed - private String brandName; - @Indexed - private Integer price; - @Indexed - private Integer count; -} diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/repository/ProductRepository.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/repository/ProductRepository.java deleted file mode 100644 index 15c9f24c..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/repository/ProductRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.repository; - -import com.macro.mall.tiny.domain.Product; -import com.redis.om.spring.repository.RedisDocumentRepository; - -import java.util.List; - -/** - * 商品管理Repository - * Created by macro on 2022/3/1. - */ -public interface ProductRepository extends RedisDocumentRepository { - /** - * 根据品牌名称查询 - */ - List findByBrandName(String brandName); - - /** - * 根据名称或副标题搜索 - */ - List findByNameOrSubTitle(String name, String subTitle); -} diff --git a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java b/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java deleted file mode 100644 index 4e016cae..00000000 --- a/mall-tiny-redis-om/src/main/java/com/macro/mall/tiny/util/LocalJsonUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.util; - -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.io.resource.ClassPathResource; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONUtil; - -import java.nio.charset.Charset; -import java.util.List; - -/** - * 从本地获取JSON数据的工具类 - * Created by macro on 2021/10/16. - */ -public class LocalJsonUtil { - - /** - * 从指定路径获取JSON并转换为List - * @param path json文件路径 - * @param elementType List元素类型 - */ - public static List getListFromJson(String path, Class elementType) { - ClassPathResource resource = new ClassPathResource(path); - String jsonStr = IoUtil.read(resource.getStream(), Charset.forName("UTF-8")); - JSONArray jsonArray = new JSONArray(jsonStr); - return JSONUtil.toList(jsonArray, elementType); - } -} diff --git a/mall-tiny-redis-om/src/main/resources/application.yml b/mall-tiny-redis-om/src/main/resources/application.yml deleted file mode 100644 index afbc7602..00000000 --- a/mall-tiny-redis-om/src/main/resources/application.yml +++ /dev/null @@ -1,19 +0,0 @@ -server: - port: 8088 - -spring: - redis: - host: 192.168.3.105 # Redis服务器地址 - database: 0 # Redis数据库索引(默认为0) - port: 6379 # Redis服务器连接端口 - password: # Redis服务器连接密码(默认为空) - timeout: 3000ms # 连接超时时间 - mvc: - pathmatch: - matching-strategy: ANT_PATH_MATCHER -springfox: - documentation: - enabled: true - - - diff --git a/mall-tiny-redis-om/src/main/resources/json/products.json b/mall-tiny-redis-om/src/main/resources/json/products.json deleted file mode 100644 index 68d1d5b3..00000000 --- a/mall-tiny-redis-om/src/main/resources/json/products.json +++ /dev/null @@ -1,29 +0,0 @@ -[ - { - "id": 1, - "productSn": "7437788", - "name": "小米8", - "subTitle": "全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待", - "brandName": "小米", - "price": 2699, - "count": 5 - }, - { - "id": 2, - "productSn": "7437789", - "name": "红米5A", - "subTitle": "全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待", - "brandName": "小米", - "price": 649, - "count": 10 - }, - { - "id": 3, - "productSn": "7437799", - "name": "Apple iPhone 8 Plus", - "subTitle": "64GB 红色特别版 移动联通电信4G手机", - "brandName": "苹果", - "price": 5499, - "count": 15 - } -] \ No newline at end of file diff --git a/mall-tiny-redis-om/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-redis-om/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index cc610c70..00000000 --- a/mall-tiny-redis-om/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -public class MallTinyApplicationTests { - - public void contextLoads() { - } - -} diff --git a/mall-tiny-redis/pom.xml b/mall-tiny-redis/pom.xml index 99aab2c2..7f013e8e 100644 --- a/mall-tiny-redis/pom.xml +++ b/mall-tiny-redis/pom.xml @@ -2,25 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-redis 1.0-SNAPSHOT mall-tiny-redis Demo project for Spring Boot - - UTF-8 - UTF-8 - 1.8 - true - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -44,51 +37,42 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-swagger2 - 2.7.0 + ${mysql-connector.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} cn.hutool hutool-all - 4.6.3 + ${hutool.version} - + org.springframework.boot spring-boot-starter-data-redis - - org.apache.commons - commons-pool2 - @@ -97,34 +81,6 @@ org.springframework.boot spring-boot-maven-plugin - - com.spotify - docker-maven-plugin - 1.1.0 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - http://192.168.6.132:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java index 3509c52e..56c567b1 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java @@ -7,8 +7,10 @@ import org.springframework.web.filter.CorsFilter; /** - * 全局跨域配置 - * Created by macro on 2019/7/27. + * @auther macrozheng + * @description 全局跨域配置 + * @date 2019/7/27 + * @github https://github.com/macrozheng */ @Configuration public class GlobalCorsConfig { diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ec54365e 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.mbg.mapper") diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/RedisConfig.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/RedisConfig.java index 7307a673..f6a4f156 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/RedisConfig.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/RedisConfig.java @@ -3,6 +3,7 @@ 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 org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; @@ -20,12 +21,14 @@ import java.time.Duration; /** - * Redis配置类 - * Created by macro on 2020/3/2. + * @auther macrozheng + * @description Redis配置类 + * @date 2020/3/2 + * @github https://github.com/macrozheng */ @EnableCaching @Configuration -public class RedisConfig extends CachingConfigurerSupport { +public class RedisConfig { /** * redis数据库自定义key @@ -51,7 +54,8 @@ public RedisSerializer redisSerializer() { Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + //必须设置,否则无法将JSON转化为对象,会转化成Map类型 + objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL); serializer.setObjectMapper(objectMapper); return serializer; } diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index f5f72ecc..5873c675 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,27 +1,38 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的配置 + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) .paths(PathSelectors.any()) .build(); @@ -31,8 +42,41 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 1bcb94a4..5418e900 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,11 +19,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/controller/RedisController.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/controller/RedisController.java index dfa6c7c3..5af8a309 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/controller/RedisController.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/controller/RedisController.java @@ -9,6 +9,7 @@ import com.macro.mall.tiny.service.RedisService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -20,11 +21,14 @@ import java.util.Set; /** - * redis测试Controller - * Created by macro on 2020/3/3. + * @auther macrozheng + * @description redis测试Controller + * @date 2020/3/3 + * @github https://github.com/macrozheng */ -@Api(tags = "RedisController", description = "redis测试") @Controller +@Api(tags = "RedisController") +@Tag(name = "RedisController", description = "redis测试") @RequestMapping("/redis") public class RedisController { @Autowired @@ -54,7 +58,7 @@ public CommonResult hashTest() { Map value = BeanUtil.beanToMap(brand); redisService.hSetAll(key, value); Map cacheValue = redisService.hGetAll(key); - PmsBrand cacheBrand = BeanUtil.mapToBean(cacheValue, PmsBrand.class, true); + PmsBrand cacheBrand = BeanUtil.toBean(cacheValue, PmsBrand.class); return CommonResult.success(cacheBrand); } diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index e1cdb965..4f124d02 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/RedisService.java index 218a807c..370c456c 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/RedisService.java @@ -5,8 +5,10 @@ import java.util.Set; /** - * redis操作Service - * Created by macro on 2020/3/3. + * @auther macrozheng + * @description redis操作Service + * @date 2020/3/3 + * @github https://github.com/macrozheng */ public interface RedisService { diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index cfdf1d48..0e188adb 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -15,8 +15,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java index 0c69ba75..8ff149fd 100644 --- a/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ b/mall-tiny-redis/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java @@ -11,8 +11,10 @@ import java.util.concurrent.TimeUnit; /** - * redis操作实现类 - * Created by macro on 2020/3/3. + * @auther macrozheng + * @description redis操作实现类 + * @date 2020/3/3 + * @github https://github.com/macrozheng */ @Service public class RedisServiceImpl implements RedisService { diff --git a/mall-tiny-redis/src/main/resources/application.yml b/mall-tiny-redis/src/main/resources/application.yml index 9052e5d2..25f57900 100644 --- a/mall-tiny-redis/src/main/resources/application.yml +++ b/mall-tiny-redis/src/main/resources/application.yml @@ -3,11 +3,11 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root redis: - host: 192.168.6.139 # Redis服务器地址 + host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) @@ -18,17 +18,12 @@ spring: max-idle: 8 # 连接池最大空闲连接数 min-idle: 0 # 连接池最小空闲连接数 max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制 -# cluster: -# nodes: -# - 192.168.6.139:6391 -# - 192.168.6.139:6392 -# - 192.168.6.139:6393 -# - 192.168.6.139:6394 -# - 192.168.6.139:6395 -# - 192.168.6.139:6396 + mvc: + pathmatch: + matching-strategy: ant_path_matcher mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml diff --git a/mall-tiny-redis/src/main/resources/generator.properties b/mall-tiny-redis/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-redis/src/main/resources/generator.properties +++ b/mall-tiny-redis/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-redis/src/main/resources/generatorConfig.xml b/mall-tiny-redis/src/main/resources/generatorConfig.xml index 468fd126..4ffff3b2 100644 --- a/mall-tiny-redis/src/main/resources/generatorConfig.xml +++ b/mall-tiny-redis/src/main/resources/generatorConfig.xml @@ -6,33 +6,40 @@ + + + + + - + + + - + - + - + - + - + diff --git a/mall-tiny-redis/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-redis/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-redis/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-redis/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-redis/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..3a562ef8 100644 --- a/mall-tiny-redis/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-redis/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,8 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-retrofit/.gitignore b/mall-tiny-retrofit/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-retrofit/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-retrofit/pom.xml b/mall-tiny-retrofit/pom.xml deleted file mode 100644 index b133f3b4..00000000 --- a/mall-tiny-retrofit/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-retrofit - 1.0-SNAPSHOT - mall-tiny-retrofit - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - com.github.lianjiatech - retrofit-spring-boot-starter - 2.2.18 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index 7c627027..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/SourceInterceptor.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/SourceInterceptor.java deleted file mode 100644 index 23499a7b..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/SourceInterceptor.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.github.lianjiatech.retrofit.spring.boot.interceptor.BaseGlobalInterceptor; -import okhttp3.Request; -import okhttp3.Response; -import org.springframework.stereotype.Component; - -import java.io.IOException; - -/** - * 全局拦截器,给请求添加source头 - * Created by macro on 2022/1/19. - */ -@Component -public class SourceInterceptor extends BaseGlobalInterceptor { - @Override - protected Response doIntercept(Chain chain) throws IOException { - Request request = chain.request(); - Request newReq = request.newBuilder() - .addHeader("source", "retrofit") - .build(); - return chain.proceed(newReq); - } -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/TokenHolder.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/TokenHolder.java deleted file mode 100644 index 02d201d5..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/TokenHolder.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.component; - -import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; - -/** - * 登录token存储(在Session中) - * Created by macro on 2022/1/19. - */ -@Component -public class TokenHolder { - /** - * 添加token - */ - public void putToken(String token) { - RequestAttributes ra = RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = ((ServletRequestAttributes) ra).getRequest(); - request.getSession().setAttribute("token", token); - } - - /** - * 获取token - */ - public String getToken() { - RequestAttributes ra = RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = ((ServletRequestAttributes) ra).getRequest(); - Object token = request.getSession().getAttribute("token"); - if(token!=null){ - return (String) token; - } - return null; - } - -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/TokenInterceptor.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/TokenInterceptor.java deleted file mode 100644 index b09f0cb4..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/component/TokenInterceptor.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.github.lianjiatech.retrofit.spring.boot.interceptor.BasePathMatchInterceptor; -import okhttp3.Request; -import okhttp3.Response; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.io.IOException; - -/** - * 给请求添加登录Token头的拦截器 - * Created by macro on 2022/1/19. - */ -@Component -public class TokenInterceptor extends BasePathMatchInterceptor { - @Autowired - private TokenHolder tokenHolder; - - @Override - protected Response doIntercept(Chain chain) throws IOException { - Request request = chain.request(); - if (tokenHolder.getToken() != null) { - request = request.newBuilder() - .header("Authorization", tokenHolder.getToken()) - .build(); - } - return chain.proceed(request); - } -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index f47bcaf6..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.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.Contact; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -/** - * Swagger2API文档的配置 - */ -@Configuration -@EnableSwagger2 -public class Swagger2Config { - @Bean - public Docket createRestApi(){ - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //为当前包下controller生成API文档 - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .version("1.0") - .build(); - } -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/controller/RetrofitController.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/controller/RetrofitController.java deleted file mode 100644 index e7106bee..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/controller/RetrofitController.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.component.TokenHolder; -import com.macro.mall.tiny.domain.LoginInfo; -import com.macro.mall.tiny.domain.PmsBrand; -import com.macro.mall.tiny.remote.PmsBrandApi; -import com.macro.mall.tiny.remote.UmsAdminApi; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -/** - * Retrofit测试接口 - * Created by macro on 2022/1/19. - */ -@Api(tags = "RetrofitController", description = "Retrofit测试接口") -@RestController -@RequestMapping("/retrofit") -public class RetrofitController { - - @Autowired - private UmsAdminApi umsAdminApi; - @Autowired - private PmsBrandApi pmsBrandApi; - @Autowired - private TokenHolder tokenHolder; - - @ApiOperation(value = "调用远程登录接口获取token") - @PostMapping(value = "/admin/login") - public CommonResult login(@RequestParam String username, @RequestParam String password) { - CommonResult result = umsAdminApi.login(username, password); - LoginInfo loginInfo = result.getData(); - if (result.getData() != null) { - tokenHolder.putToken(loginInfo.getTokenHead() + " " + loginInfo.getToken()); - } - return result; - } - - @ApiOperation("调用远程接口分页查询品牌列表") - @GetMapping(value = "/brand/list") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - return pmsBrandApi.list(pageNum, pageSize); - } - - @ApiOperation("调用远程接口获取指定id的品牌详情") - @GetMapping(value = "/brand/{id}") - public CommonResult brand(@PathVariable("id") Long id) { - return pmsBrandApi.detail(id); - } - - @ApiOperation("调用远程接口添加品牌") - @PostMapping(value = "/brand/create") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - return pmsBrandApi.create(pmsBrand); - } - @ApiOperation("调用远程接口更新指定id品牌信息") - @PostMapping(value = "/brand/update/{id}") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrand) { - return pmsBrandApi.update(id,pmsBrand); - } - - @ApiOperation("调用远程接口删除指定id的品牌") - @GetMapping(value = "/delete/{id}") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - return pmsBrandApi.delete(id); - } -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/domain/LoginInfo.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/domain/LoginInfo.java deleted file mode 100644 index 15864ac7..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/domain/LoginInfo.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 登录信息封装 - * Created by macro on 2022/1/19. - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class LoginInfo { - //登录token - private String token; - //登录token前缀 - private String tokenHead; -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java deleted file mode 100644 index 53858ae9..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/domain/PmsBrand.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.domain; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -@Data -@EqualsAndHashCode(callSuper = false) -public class PmsBrand { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; -} \ No newline at end of file diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/remote/PmsBrandApi.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/remote/PmsBrandApi.java deleted file mode 100644 index b2e1646d..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/remote/PmsBrandApi.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.macro.mall.tiny.remote; - -import com.github.lianjiatech.retrofit.spring.boot.annotation.Intercept; -import com.github.lianjiatech.retrofit.spring.boot.annotation.RetrofitClient; -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.component.TokenInterceptor; -import com.macro.mall.tiny.domain.PmsBrand; -import retrofit2.http.*; - -/** - * 定义Http接口,用于调用远程的PmsBrand服务 - * Created by macro on 2022/1/19. - */ -@RetrofitClient(baseUrl = "${remote.baseUrl}") -@Intercept(handler = TokenInterceptor.class, include = "/brand/**") -public interface PmsBrandApi { - @GET("brand/list") - CommonResult> list(@Query("pageNum") Integer pageNum, @Query("pageSize") Integer pageSize); - - @GET("brand/{id}") - CommonResult detail(@Path("id") Long id); - - @POST("brand/create") - CommonResult create(@Body PmsBrand pmsBrand); - - @POST("brand/update/{id}") - CommonResult update(@Path("id") Long id, @Body PmsBrand pmsBrand); - - @GET("brand/delete/{id}") - CommonResult delete(@Path("id") Long id); -} diff --git a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/remote/UmsAdminApi.java b/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/remote/UmsAdminApi.java deleted file mode 100644 index 8a21bcf5..00000000 --- a/mall-tiny-retrofit/src/main/java/com/macro/mall/tiny/remote/UmsAdminApi.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.macro.mall.tiny.remote; - -import com.github.lianjiatech.retrofit.spring.boot.annotation.RetrofitClient; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.domain.LoginInfo; -import retrofit2.http.Field; -import retrofit2.http.FormUrlEncoded; -import retrofit2.http.POST; - - -/** - * 定义Http接口,用于调用远程的UmsAdmin服务 - * Created by macro on 2022/1/19. - */ -@RetrofitClient(baseUrl = "${remote.baseUrl}") -public interface UmsAdminApi { - - @FormUrlEncoded - @POST("admin/login") - CommonResult login(@Field("username") String username, @Field("password") String password); -} diff --git a/mall-tiny-retrofit/src/main/resources/application.yml b/mall-tiny-retrofit/src/main/resources/application.yml deleted file mode 100644 index 0dc7cbfc..00000000 --- a/mall-tiny-retrofit/src/main/resources/application.yml +++ /dev/null @@ -1,44 +0,0 @@ -server: - port: 8086 - -springfox: - documentation: - enabled: true - -remote: - baseUrl: http://localhost:8088/ - -retrofit: - # 全局连接超时时间 - global-connect-timeout-ms: 3000 - # 全局读取超时时间 - global-read-timeout-ms: 3000 - # 全局写入超时时间 - global-write-timeout-ms: 35000 - # 全局完整调用超时时间 - global-call-timeout-ms: 0 - # 日志打印配置 - log: - # 启用日志打印 - enable: true - # 日志打印拦截器 - logging-interceptor: com.github.lianjiatech.retrofit.spring.boot.interceptor.DefaultLoggingInterceptor - # 全局日志打印级别 - global-log-level: info - # 全局日志打印策略 - global-log-strategy: body - # 重试配置 - retry: - # 是否启用全局重试 - enable-global-retry: true - # 全局重试间隔时间 - global-interval-ms: 100 - # 全局最大重试次数 - global-max-retries: 2 - # 全局重试规则 - global-retry-rules: - - response_status_not_2xx - - occur_exception - # 重试拦截器 - retry-interceptor: com.github.lianjiatech.retrofit.spring.boot.retry.DefaultRetryInterceptor - diff --git a/mall-tiny-retrofit/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-retrofit/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-retrofit/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-sa-token/.gitignore b/mall-tiny-sa-token/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-sa-token/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-sa-token/pom.xml b/mall-tiny-sa-token/pom.xml deleted file mode 100644 index c0349da7..00000000 --- a/mall-tiny-sa-token/pom.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-sa-token - 1.0-SNAPSHOT - mall-tiny-sa-token - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.3.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 4.5.7 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - cn.dev33 - sa-token-spring-boot-starter - 1.24.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index d75e4f14..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import cn.dev33.satoken.SaManager; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@Slf4j -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - log.info("启动成功:Sa-Token配置如下:{}", SaManager.getConfig()); - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index 424ad8fa..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(String message) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), message, null); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(String message) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), message,null); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/component/GlobalExceptionHandler.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/component/GlobalExceptionHandler.java deleted file mode 100644 index e60bc39d..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/component/GlobalExceptionHandler.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.dev33.satoken.exception.NotLoginException; -import cn.dev33.satoken.exception.NotPermissionException; -import cn.dev33.satoken.exception.NotRoleException; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.web.bind.annotation.ControllerAdvice; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.ResponseBody; - -/** - * 全局异常处理 - * Created by macro on 2020/2/27. - */ -@ControllerAdvice -public class GlobalExceptionHandler { - - /** - * 处理未登录的异常 - */ - @ResponseBody - @ExceptionHandler(value = NotLoginException.class) - public CommonResult handleNotLoginException(NotLoginException e) { - return CommonResult.unauthorized(e.getMessage()); - } - - /** - * 处理没有权限的异常 - */ - @ResponseBody - @ExceptionHandler(value = NotPermissionException.class) - public CommonResult handleNotPermissionException(NotPermissionException e) { - return CommonResult.forbidden(e.getMessage()); - } - - /** - * 处理没有角色的异常 - */ - @ResponseBody - @ExceptionHandler(value = NotRoleException.class) - public CommonResult handleNotRoleException(NotRoleException e) { - return CommonResult.forbidden(e.getMessage()); - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/component/StpInterfaceImpl.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/component/StpInterfaceImpl.java deleted file mode 100644 index f9eedfaf..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/component/StpInterfaceImpl.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.dev33.satoken.stp.StpInterface; -import cn.hutool.core.convert.Convert; -import com.macro.mall.tiny.domain.AdminUser; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.Collections; -import java.util.List; - -/** - * 自定义权限验证接口扩展 - */ -@Component -public class StpInterfaceImpl implements StpInterface { - @Autowired - private UmsAdminService adminService; - @Override - public List getPermissionList(Object loginId, String loginType) { - AdminUser adminUser = adminService.getAdminById(Convert.toLong(loginId)); - return adminUser.getRole().getPermissionList(); - } - - @Override - public List getRoleList(Object loginId, String loginType) { - AdminUser adminUser = adminService.getAdminById(Convert.toLong(loginId)); - return Collections.singletonList(adminUser.getRole().getName()); - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java deleted file mode 100644 index 2094034b..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.config; - -import lombok.Getter; -import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -/** - * 用于配置白名单资源路径 - * Created by macro on 2018/11/5. - */ -@Getter -@Setter -@Component -@ConfigurationProperties(prefix = "secure.ignored") -public class IgnoreUrlsConfig { - - private List urls = new ArrayList<>(); - -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/SaTokenConfig.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/SaTokenConfig.java deleted file mode 100644 index 0888fe17..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/SaTokenConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.macro.mall.tiny.config; - -import cn.dev33.satoken.interceptor.SaRouteInterceptor; -import cn.dev33.satoken.router.SaRouter; -import cn.dev33.satoken.stp.StpUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -import java.util.Collections; -import java.util.List; - -/** - * Sa-Token相关配置 - */ -@Configuration -public class SaTokenConfig implements WebMvcConfigurer { - - @Autowired - private IgnoreUrlsConfig ignoreUrlsConfig; - - /** - * 注册sa-token拦截器 - */ - @Override - public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new SaRouteInterceptor((req, resp, handler) -> { - // 获取配置文件中的白名单路径 - List ignoreUrls = ignoreUrlsConfig.getUrls(); - // 登录认证:除白名单路径外均需要登录认证 - SaRouter.match(Collections.singletonList("/**"), ignoreUrls, StpUtil::checkLogin); - // 角色认证:ROLE_ADMIN可以访问所有接口,ROLE_USER只能访问查询全部接口 -// SaRouter.match("/brand/listAll", () -> { -// StpUtil.checkRoleOr("ROLE_ADMIN","ROLE_USER"); -// //强制退出匹配链 -// SaRouter.stop(); -// }); -// SaRouter.match("/brand/**", () -> StpUtil.checkRole("ROLE_ADMIN")); - // 权限认证:不同接口, 校验不同权限 - SaRouter.match("/brand/listAll", () -> StpUtil.checkPermission("brand:read")); - SaRouter.match("/brand/create", () -> StpUtil.checkPermission("brand:create")); - SaRouter.match("/brand/update/{id}", () -> StpUtil.checkPermission("brand:update")); - SaRouter.match("/brand/delete/{id}", () -> StpUtil.checkPermission("brand:delete")); - SaRouter.match("/brand/list", () -> StpUtil.checkPermission("brand:read")); - SaRouter.match("/brand/{id}", () -> StpUtil.checkPermission("brand:read")); - })).addPathPatterns("/**"); - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 611f611a..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.macro.mall.tiny.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.*; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spi.service.contexts.SecurityContext; -import springfox.documentation.spring.web.plugins.Docket; - -import java.util.ArrayList; -import java.util.List; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - result.add(getContextByPath("/admin/isLogin")); - 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-tiny-sa-token/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 0ced9f12..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "/listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - return CommonResult.success(null); - } else { - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index b51a9fcc..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.macro.mall.tiny.controller; - -import cn.dev33.satoken.stp.SaTokenInfo; -import cn.dev33.satoken.stp.StpUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - SaTokenInfo saTokenInfo = adminService.login(username, password); - if (saTokenInfo == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", saTokenInfo.getTokenValue()); - tokenMap.put("tokenHead", saTokenInfo.getTokenName()); - return CommonResult.success(tokenMap); - } - - @ApiOperation(value = "查询当前登录状态") - @RequestMapping(value = "/isLogin",method = RequestMethod.GET) - @ResponseBody - public CommonResult isLogin() { - return CommonResult.success(StpUtil.isLogin()); - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/domain/AdminRole.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/domain/AdminRole.java deleted file mode 100644 index fced1f24..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/domain/AdminRole.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.List; - -/** - * 用户相关角色 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminRole { - private Long id; - private String name; - private List permissionList; -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/domain/AdminUser.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/domain/AdminUser.java deleted file mode 100644 index ce681b6c..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/domain/AdminUser.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 登录用户 - */ -@Data -@Builder -@EqualsAndHashCode(callSuper = false) -public class AdminUser { - private Long id; - private String username; - private String password; - private Long roleId; - private AdminRole role; -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 0ce2e791..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.service; - -import cn.dev33.satoken.stp.SaTokenInfo; -import com.macro.mall.tiny.domain.AdminUser; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUser getAdminByUsername(String username); - - /** - * 根据用户ID获取用户 - */ - AdminUser getAdminById(Long id); - - /** - * 用户名密码登录 - */ - SaTokenInfo login(String username, String password); -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 00c52574..00000000 --- a/mall-tiny-sa-token/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.dev33.satoken.secure.SaSecureUtil; -import cn.dev33.satoken.stp.SaTokenInfo; -import cn.dev33.satoken.stp.StpUtil; -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.domain.AdminRole; -import com.macro.mall.tiny.domain.AdminUser; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放用户信息 - */ - private final List adminUserList = new ArrayList<>(); - /** - * 存储角色信息 - */ - private final List adminRoleList = new ArrayList<>(); - - @PostConstruct - private void init() { - adminRoleList.add(AdminRole.builder() - .id(1L) - .name("ROLE_ADMIN") - .permissionList(Arrays.asList("brand:create", "brand:read", "brand:update", "brand:delete")) - .build()); - adminRoleList.add(AdminRole.builder() - .id(2L) - .name("ROLE_USER") - .permissionList(Collections.singletonList("brand:read")) - .build()); - adminUserList.add(AdminUser.builder() - .id(1L) - .username("admin") - .password(SaSecureUtil.md5("123456")) - .roleId(1L) - .build()); - adminUserList.add(AdminUser.builder() - .id(2L) - .username("macro") - .password(SaSecureUtil.md5("123456")) - .roleId(2L) - .build()); - } - - @Override - public AdminUser getAdminByUsername(String username) { - List findList = adminUserList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(findList)) { - return findList.get(0); - } - return null; - } - - @Override - public AdminUser getAdminById(Long id) { - List findList = adminUserList.stream().filter(item -> item.getId().equals(id)).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(findList)) { - AdminUser findUser = findList.get(0); - List findRoleList = adminRoleList.stream().filter(item -> item.getId().equals(findUser.getRoleId())).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(findRoleList)) { - findUser.setRole(findRoleList.get(0)); - } - return findUser; - } - return null; - } - - @Override - public SaTokenInfo login(String username, String password) { - SaTokenInfo saTokenInfo = null; - AdminUser adminUser = getAdminByUsername(username); - if (adminUser == null) { - return null; - } - if (!SaSecureUtil.md5(password).equals(adminUser.getPassword())) { - return null; - } - // 密码校验成功后登录,一行代码实现登录 - StpUtil.login(adminUser.getId()); - // 获取当前登录用户Token信息 - saTokenInfo = StpUtil.getTokenInfo(); - return saTokenInfo; - } -} diff --git a/mall-tiny-sa-token/src/main/resources/application.yml b/mall-tiny-sa-token/src/main/resources/application.yml deleted file mode 100644 index 6bcdd253..00000000 --- a/mall-tiny-sa-token/src/main/resources/application.yml +++ /dev/null @@ -1,67 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# Sa-Token配置 -sa-token: - # token名称 (同时也是cookie名称) - token-name: Authorization - # token有效期,单位秒,-1代表永不过期 - timeout: 2592000 - # token临时有效期 (指定时间内无操作就视为token过期),单位秒 - activity-timeout: -1 - # 是否允许同一账号并发登录 (为false时新登录挤掉旧登录) - is-concurrent: true - # 在多人登录同一账号时,是否共用一个token (为false时每次登录新建一个token) - is-share: false - # token风格 - token-style: uuid - # 是否输出操作日志 - is-log: false - # 是否从cookie中读取token - is-read-cookie: false - # 是否从head中读取token - is-read-head: true - -springfox: - documentation: - enabled: true - -# 访问白名单路径 -secure: - ignored: - urls: - - / - - /swagger-ui/ - - /*.html - - /favicon.ico - - /**/*.html - - /**/*.css - - /**/*.js - - /swagger-resources/** - - /v2/api-docs/** - - /actuator/** - - /admin/login - - /admin/isLogin - -management: - endpoints: - web: - exposure: - include: '*' - endpoint: - shutdown: - enabled: true -logging: - level: - com.macro.mall.tiny: debug diff --git a/mall-tiny-sa-token/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-sa-token/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-sa-token/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-sa-token/src/main/resources/generator.properties b/mall-tiny-sa-token/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-sa-token/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-sa-token/src/main/resources/generatorConfig.xml b/mall-tiny-sa-token/src/main/resources/generatorConfig.xml deleted file mode 100644 index b2642d75..00000000 --- a/mall-tiny-sa-token/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-sa-token/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-sa-token/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index 6675173d..00000000 --- a/mall-tiny-sa-token/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.macro.mall.tiny; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import lombok.extern.log4j.Log4j; -import lombok.extern.slf4j.Slf4j; -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.test.context.junit4.SpringRunner; - -import java.util.List; - -@RunWith(SpringRunner.class) -@SpringBootTest -@Slf4j -public class MallTinyApplicationTests { - @Autowired - private PmsBrandService pmsBrandService; - - @Test - public void contextLoads() { - } - - @Test - public void testMethod() { - List brandList = pmsBrandService.listAllBrand(); - log.info("testMethod:{}", brandList); - } - -} diff --git a/mall-tiny-security/.gitignore b/mall-tiny-security/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-security/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-security/pom.xml b/mall-tiny-security/pom.xml deleted file mode 100644 index fb974b68..00000000 --- a/mall-tiny-security/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-security - 1.0-SNAPSHOT - mall-tiny-security - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.7.0 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.1 - - - - com.alibaba - druid-spring-boot-starter - 1.2.8 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.7 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 5.7.22 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5d2dd714..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicAccessDecisionManager.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicAccessDecisionManager.java deleted file mode 100644 index 53df40ae..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicAccessDecisionManager.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.core.collection.CollUtil; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.security.access.AccessDecisionManager; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.access.ConfigAttribute; -import org.springframework.security.authentication.InsufficientAuthenticationException; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.stereotype.Component; - -import java.util.Collection; -import java.util.Iterator; - -/** - * 动态权限决策管理器,用于判断用户是否有访问权限 - * Created by macro on 2020/2/7. - */ -public class DynamicAccessDecisionManager implements AccessDecisionManager { - - @Override - public void decide(Authentication authentication, Object object, - Collection configAttributes) throws AccessDeniedException, InsufficientAuthenticationException { - // 当接口未被配置资源时直接放行 - if (CollUtil.isEmpty(configAttributes)) { - return; - } - Iterator iterator = configAttributes.iterator(); - while (iterator.hasNext()) { - ConfigAttribute configAttribute = iterator.next(); - //将访问所需资源或用户拥有资源进行比对 - String needAuthority = configAttribute.getAttribute(); - for (GrantedAuthority grantedAuthority : authentication.getAuthorities()) { - if (needAuthority.trim().equals(grantedAuthority.getAuthority())) { - return; - } - } - } - throw new AccessDeniedException("抱歉,您没有访问权限"); - } - - @Override - public boolean supports(ConfigAttribute configAttribute) { - return true; - } - - @Override - public boolean supports(Class aClass) { - return true; - } - -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicSecurityFilter.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicSecurityFilter.java deleted file mode 100644 index 040a39b3..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicSecurityFilter.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.config.IgnoreUrlsConfig; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.http.HttpMethod; -import org.springframework.security.access.SecurityMetadataSource; -import org.springframework.security.access.intercept.AbstractSecurityInterceptor; -import org.springframework.security.access.intercept.InterceptorStatusToken; -import org.springframework.security.web.FilterInvocation; -import org.springframework.stereotype.Component; -import org.springframework.util.AntPathMatcher; -import org.springframework.util.PathMatcher; - -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import java.io.IOException; - -/** - * 动态权限过滤器,用于实现基于路径的动态权限过滤 - * Created by macro on 2020/2/7. - */ -public class DynamicSecurityFilter extends AbstractSecurityInterceptor implements Filter { - - @Autowired - private DynamicSecurityMetadataSource dynamicSecurityMetadataSource; - @Autowired - private IgnoreUrlsConfig ignoreUrlsConfig; - - @Autowired - public void setMyAccessDecisionManager(DynamicAccessDecisionManager dynamicAccessDecisionManager) { - super.setAccessDecisionManager(dynamicAccessDecisionManager); - } - - @Override - public void init(FilterConfig filterConfig) throws ServletException { - } - - @Override - public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { - HttpServletRequest request = (HttpServletRequest) servletRequest; - FilterInvocation fi = new FilterInvocation(servletRequest, servletResponse, filterChain); - //OPTIONS请求直接放行 - if(request.getMethod().equals(HttpMethod.OPTIONS.toString())){ - fi.getChain().doFilter(fi.getRequest(), fi.getResponse()); - return; - } - //白名单请求直接放行 - PathMatcher pathMatcher = new AntPathMatcher(); - for (String path : ignoreUrlsConfig.getUrls()) { - if(pathMatcher.match(path,request.getRequestURI())){ - fi.getChain().doFilter(fi.getRequest(), fi.getResponse()); - return; - } - } - //此处会调用AccessDecisionManager中的decide方法进行鉴权操作 - InterceptorStatusToken token = super.beforeInvocation(fi); - try { - fi.getChain().doFilter(fi.getRequest(), fi.getResponse()); - } finally { - super.afterInvocation(token, null); - } - } - - @Override - public void destroy() { - } - - @Override - public Class getSecureObjectClass() { - return FilterInvocation.class; - } - - @Override - public SecurityMetadataSource obtainSecurityMetadataSource() { - return dynamicSecurityMetadataSource; - } - -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicSecurityMetadataSource.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicSecurityMetadataSource.java deleted file mode 100644 index 9d15b24e..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/DynamicSecurityMetadataSource.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.core.util.URLUtil; -import com.macro.mall.tiny.service.DynamicSecurityService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.context.annotation.Bean; -import org.springframework.security.access.ConfigAttribute; -import org.springframework.security.web.FilterInvocation; -import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource; -import org.springframework.stereotype.Component; -import org.springframework.util.AntPathMatcher; -import org.springframework.util.PathMatcher; - -import javax.annotation.PostConstruct; -import java.util.*; - -/** - * 动态权限数据源,用于获取动态权限规则 - * Created by macro on 2020/2/7. - */ -public class DynamicSecurityMetadataSource implements FilterInvocationSecurityMetadataSource { - - private static Map configAttributeMap = null; - @Autowired - private DynamicSecurityService dynamicSecurityService; - - @PostConstruct - public void loadDataSource() { - configAttributeMap = dynamicSecurityService.loadDataSource(); - } - - public void clearDataSource() { - configAttributeMap.clear(); - configAttributeMap = null; - } - - @Override - public Collection getAttributes(Object o) throws IllegalArgumentException { - if (configAttributeMap == null) this.loadDataSource(); - List configAttributes = new ArrayList<>(); - //获取当前访问的路径 - String url = ((FilterInvocation) o).getRequestUrl(); - String path = URLUtil.getPath(url); - PathMatcher pathMatcher = new AntPathMatcher(); - Iterator iterator = configAttributeMap.keySet().iterator(); - //获取访问该路径所需资源 - while (iterator.hasNext()) { - String pattern = iterator.next(); - if (pathMatcher.match(pattern, path)) { - configAttributes.add(configAttributeMap.get(pattern)); - } - } - // 未设置操作请求权限,返回空集合 - return configAttributes; - } - - @Override - public Collection getAllConfigAttributes() { - return null; - } - - @Override - public boolean supports(Class aClass) { - return true; - } - -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index a90b14f8..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.stereotype.Component; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index d6791cec..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index ae83438c..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/CommonSecurityConfig.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/CommonSecurityConfig.java deleted file mode 100644 index 9cc66d32..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/CommonSecurityConfig.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.component.*; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; - -/** - * SpringSecurity通用配置 - * 包括通用Bean、Security通用Bean及动态权限通用Bean - * Created by macro on 2022/5/20. - */ -@Configuration -public class CommonSecurityConfig { - - @Bean - public IgnoreUrlsConfig ignoreUrlsConfig() { - return new IgnoreUrlsConfig(); - } - - @Bean - public JwtTokenUtil jwtTokenUtil() { - return new JwtTokenUtil(); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public RestfulAccessDeniedHandler restfulAccessDeniedHandler() { - return new RestfulAccessDeniedHandler(); - } - - @Bean - public RestAuthenticationEntryPoint restAuthenticationEntryPoint() { - return new RestAuthenticationEntryPoint(); - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ - return new JwtAuthenticationTokenFilter(); - } - - @Bean - public DynamicAccessDecisionManager dynamicAccessDecisionManager() { - return new DynamicAccessDecisionManager(); - } - - @Bean - public DynamicSecurityMetadataSource dynamicSecurityMetadataSource() { - return new DynamicSecurityMetadataSource(); - } - - @Bean - public DynamicSecurityFilter dynamicSecurityFilter(){ - return new DynamicSecurityFilter(); - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java deleted file mode 100644 index 1fbfefaa..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.config; - -import lombok.Getter; -import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Configuration; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -/** - * 用于配置白名单资源路径 - * Created by macro on 2018/11/5. - */ -@Getter -@Setter -@ConfigurationProperties(prefix = "secure.ignored") -public class IgnoreUrlsConfig { - - private List urls = new ArrayList<>(); - -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java deleted file mode 100644 index 24cf2bbc..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.domain.UmsResource; -import com.macro.mall.tiny.service.DynamicSecurityService; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.access.ConfigAttribute; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; - -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * mall-security模块相关配置 - * 自定义配置,用于配置如何获取用户信息及动态权限 - * Created by macro on 2022/5/20. - */ -@Configuration -public class MallSecurityConfig { - - @Autowired - private UmsAdminService adminService; - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - AdminUserDetails admin = adminService.getAdminByUsername(username); - if (admin != null) { - return admin; - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public DynamicSecurityService dynamicSecurityService() { - return new DynamicSecurityService() { - @Override - public Map loadDataSource() { - Map map = new ConcurrentHashMap<>(); - List resourceList = adminService.getResourceList(); - for (UmsResource resource : resourceList) { - map.put(resource.getUrl(), new org.springframework.security.access.SecurityConfig(resource.getId() + ":" + resource.getName())); - } - return map; - } - }; - } - -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index 9a9e54ab..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.*; -import com.macro.mall.tiny.service.DynamicSecurityService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.web.SecurityFilterChain; -import org.springframework.security.web.access.intercept.FilterSecurityInterceptor; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - -/** - * SpringSecurity 5.4.x以上新用法配置 - * 为避免循环依赖,仅用于配置HttpSecurity - * Created by macro on 2022/5/19. - */ -@Configuration -public class SecurityConfig { - - @Autowired - private IgnoreUrlsConfig ignoreUrlsConfig; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - @Autowired - private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter; - @Autowired - private DynamicSecurityService dynamicSecurityService; - @Autowired - private DynamicSecurityFilter dynamicSecurityFilter; - - @Bean - SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity - .authorizeRequests(); - //不需要保护的资源路径允许访问 - for (String url : ignoreUrlsConfig.getUrls()) { - registry.antMatchers(url).permitAll(); - } - //允许跨域请求的OPTIONS请求 - registry.antMatchers(HttpMethod.OPTIONS) - .permitAll(); - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - //有动态权限配置时添加动态权限校验过滤器 - if(dynamicSecurityService!=null){ - registry.and().addFilterBefore(dynamicSecurityFilter, FilterSecurityInterceptor.class); - } - return httpSecurity.build(); - } - -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 595bbc97..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.ReflectionUtils; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -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.spring.web.plugins.WebFluxRequestHandlerProvider; -import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - 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; - } - - @Bean - public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { - return new BeanPostProcessor() { - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { - customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); - } - return bean; - } - - private void customizeSpringfoxHandlerMappings(List mappings) { - List copy = mappings.stream() - .filter(mapping -> mapping.getPatternParser() == null) - .collect(Collectors.toList()); - mappings.clear(); - mappings.addAll(copy); - } - - @SuppressWarnings("unchecked") - private List getHandlerMappings(Object bean) { - try { - Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); - field.setAccessible(true); - return (List) field.get(bean); - } catch (IllegalArgumentException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - }; - } - -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 123d4fba..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Controller -@Api(tags = "PmsBrandController") -@Tag(name = "PmsBrandController", description = "商品品牌管理") -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index 4a22624c..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController") -@Tag(name = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - String token = adminService.login(username, password); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java deleted file mode 100644 index 3152ef66..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminUserDetails implements UserDetails { - private String username; - private String password; - private List authorityList; - @Override - public Collection getAuthorities() { - return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return this.password; - } - - @Override - public String getUsername() { - return this.username; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/DynamicSecurityService.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/DynamicSecurityService.java deleted file mode 100644 index cde94390..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/DynamicSecurityService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny.service; - -import org.springframework.security.access.ConfigAttribute; - -import java.util.Map; - -/** - * 动态权限相关业务类 - * Created by macro on 2020/2/7. - */ -public interface DynamicSecurityService { - /** - * 加载资源ANT通配符和资源对应MAP - */ - Map loadDataSource(); -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index c8c98747..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.domain.UmsResource; - -import java.util.List; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUserDetails getAdminByUsername(String username); - - /** - * 获取所以权限列表 - */ - List getResourceList(); - - /** - * 用户名密码登录 - */ - String login(String username, String password); -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 7f821c90..00000000 --- a/mall-tiny-security/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.domain.UmsResource; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放默认用户信息 - */ - private List adminUserDetailsList = new ArrayList<>(); - /** - * 存放默认资源信息 - */ - private List resourceList = new ArrayList<>(); - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - - @PostConstruct - private void init(){ - adminUserDetailsList.add(AdminUserDetails.builder() - .username("admin") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("1:brand:create","2:brand:update","3:brand:delete","4:brand:list","5:brand:listAll")) - .build()); - adminUserDetailsList.add(AdminUserDetails.builder() - .username("macro") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("5:brand:listAll")) - .build()); - resourceList.add(UmsResource.builder() - .id(1L) - .name("brand:create") - .url("/brand/create") - .build()); - resourceList.add(UmsResource.builder() - .id(2L) - .name("brand:update") - .url("/brand/update/**") - .build()); - resourceList.add(UmsResource.builder() - .id(3L) - .name("brand:delete") - .url("/brand/delete/**") - .build()); - resourceList.add(UmsResource.builder() - .id(4L) - .name("brand:list") - .url("/brand/list") - .build()); - resourceList.add(UmsResource.builder() - .id(5L) - .name("brand:listAll") - .url("/brand/listAll") - .build()); - } - @Override - public AdminUserDetails getAdminByUsername(String username) { - List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(findList)){ - return findList.get(0); - } - return null; - } - - @Override - public List getResourceList() { - return resourceList; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = getAdminByUsername(username); - if(userDetails==null){ - return token; - } - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - log.warn("登录异常:{}", e.getMessage()); - } - return token; - } -} diff --git a/mall-tiny-security/src/main/resources/application.yml b/mall-tiny-security/src/main/resources/application.yml deleted file mode 100644 index fa7a3fe9..00000000 --- a/mall-tiny-security/src/main/resources/application.yml +++ /dev/null @@ -1,44 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root -# main: -# allow-circular-references: true - mvc: - pathmatch: - matching-strategy: ANT_PATH_MATCHER - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -springfox: - documentation: - enabled: true - -secure: - ignored: - urls: #安全路径白名单 - - /swagger-ui/ - - /swagger-resources/** - - /**/v2/api-docs - - /**/*.html - - /**/*.js - - /**/*.css - - /**/*.png - - /favicon.ico - - /actuator/** - - /druid/** - - /admin/login \ No newline at end of file diff --git a/mall-tiny-security/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-security/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-security/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-security/src/main/resources/generator.properties b/mall-tiny-security/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-security/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-security/src/main/resources/generatorConfig.xml b/mall-tiny-security/src/main/resources/generatorConfig.xml deleted file mode 100644 index b9cfb905..00000000 --- a/mall-tiny-security/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-security/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-security/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index aeb37555..00000000 --- a/mall-tiny-security/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@SpringBootTest -public class MallTinyApplicationTests { - - public void contextLoads() { - } - -} diff --git a/mall-tiny-smart-doc/.gitignore b/mall-tiny-smart-doc/.gitignore deleted file mode 100644 index 0e43e3a9..00000000 --- a/mall-tiny-smart-doc/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ - -### smart-doc ### -/src/main/resources/static/doc/ diff --git a/mall-tiny-smart-doc/pom.xml b/mall-tiny-smart-doc/pom.xml deleted file mode 100644 index 05278d46..00000000 --- a/mall-tiny-smart-doc/pom.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-smart-doc - 1.0-SNAPSHOT - mall-tiny-smart-doc - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.2.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 4.5.7 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - com.github.shalousun - smart-doc-maven-plugin - 2.2.8 - - - ./src/main/resources/smart-doc.json - - mall-tiny-smart-doc - - - - - - diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index 3625c3f5..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - /** - * 响应码 - */ - private long code; - /** - * 相应消息 - */ - private String message; - /** - * 返回数据 - */ - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index 685d733c..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/swagger-ui/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**", - "/doc/**", - "/**" - ) - .permitAll() - .antMatchers("/admin/login")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - AdminUserDetails admin = adminService.getAdminByUsername(username); - if (admin != null) { - return admin; - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 06da6f1f..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 商品品牌管理 - * @author macro - */ -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - /** - * 获取所有品牌列表 - */ - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - /** - * 添加品牌 - * - * @param pmsBrand - */ - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - /** - * 更新指定id品牌信息 - * - * @param id 品牌ID - */ - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - /** - * 删除指定id的品牌 - * - * @param id 品牌ID - */ - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - /** - * 分页查询品牌列表 - * - * @param pageNum 页码 - * @param pageSize 分页大小 - */ - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - /** - * 获取指定id的品牌详情 - */ - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index c8ffcab9..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - */ -@Controller -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - - /** - * 登录以后返回token - * @param username 用户名 - * @param password 密码 - * @return - */ - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - String token = adminService.login(username, password); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java deleted file mode 100644 index 3152ef66..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminUserDetails implements UserDetails { - private String username; - private String password; - private List authorityList; - @Override - public Collection getAuthorities() { - return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return this.password; - } - - @Override - public String getUsername() { - return this.username; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 3f3d9ff9..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.io.Serializable; - -public class PmsBrand implements Serializable { - /** - * ID - */ - private Long id; - - /** - * 名称 - * @required - */ - private String name; - - /** - * 首字母 - * @since 1.0 - */ - private String firstLetter; - - /** - * 排序 - */ - private Integer sort; - - /** - * 是否为品牌制造商(0,1) - */ - private Integer factoryStatus; - - /** - * 显示状态(0,1) - * @ignore - */ - private Integer showStatus; - - /** - * 产品数量 - */ - private Integer productCount; - - /** - * 产品评论数量 - */ - private Integer productCommentCount; - - /** - * 品牌logo - */ - private String logo; - - /** - * 专区大图 - */ - private String bigPic; - - /** - * 品牌故事 - */ - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 6528582e..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminUserDetails; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUserDetails getAdminByUsername(String username); - - /** - * 用户名密码登录 - */ - String login(String username, String password); -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 45347be4..00000000 --- a/mall-tiny-smart-doc/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放默认用户信息 - */ - private List adminUserDetailsList = new ArrayList<>(); - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - - @PostConstruct - private void init(){ - adminUserDetailsList.add(AdminUserDetails.builder() - .username("admin") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_ADMIN")) - .build()); - adminUserDetailsList.add(AdminUserDetails.builder() - .username("macro") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_USER")) - .build()); - } - @Override - public AdminUserDetails getAdminByUsername(String username) { - List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(findList)){ - return findList.get(0); - } - return null; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = getAdminByUsername(username); - if(userDetails==null){ - return token; - } - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - log.warn("登录异常:{}", e.getMessage()); - } - return token; - } -} diff --git a/mall-tiny-smart-doc/src/main/resources/application.yml b/mall-tiny-smart-doc/src/main/resources/application.yml deleted file mode 100644 index fa9a2907..00000000 --- a/mall-tiny-smart-doc/src/main/resources/application.yml +++ /dev/null @@ -1,20 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 \ No newline at end of file diff --git a/mall-tiny-smart-doc/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-smart-doc/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-smart-doc/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-smart-doc/src/main/resources/generator.properties b/mall-tiny-smart-doc/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-smart-doc/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-smart-doc/src/main/resources/generatorConfig.xml b/mall-tiny-smart-doc/src/main/resources/generatorConfig.xml deleted file mode 100644 index 33717828..00000000 --- a/mall-tiny-smart-doc/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-smart-doc/src/main/resources/smart-doc.json b/mall-tiny-smart-doc/src/main/resources/smart-doc.json deleted file mode 100644 index 63e757ff..00000000 --- a/mall-tiny-smart-doc/src/main/resources/smart-doc.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "serverUrl": "http://localhost:8088", - "outPath": "src/main/resources/static/doc", - "isStrict": false, - "allInOne": true, - "createDebugPage": false, - "packageFilters": "com.macro.mall.tiny.controller.*", - "style": "xt256", - "projectName": "mall-tiny-smart-doc", - "showAuthor": false, - "allInOneDocFileName": "index.html", - "requestHeaders": [ - { - "name": "Authorization", - "type": "string", - "desc": "token请求头的值", - "value": "token请求头的值", - "required": false, - "since": "-", - "pathPatterns": "/brand/**", - "excludePathPatterns": "/admin/login" - } - ], - "responseBodyAdvice": { - "className": "com.macro.mall.tiny.common.api.CommonResult" - }, - "errorCodeDictionaries": [ - { - "title": "title", - "enumClassName": "com.macro.mall.tiny.common.api.ResultCode", - "codeField": "code", - "descField": "message" - } - ], - "revisionLogs": [ - { - "version": "1.0", - "revisionTime": "2021-11-01 10:30", - "status": "update", - "author": "macro", - "remarks": "created by macro" - } - ], - "appKey": "20211103905498418195988480", - "appToken": "b6c50f442eb348f48867d85f4ef2eaea", - "secret": "~#ZS~!*2B3I01vbW0f9iKH,rzj-%Xv^Q", - "openUrl": "http://localhost:7700/api", - "debugEnvName":"测试环境", - "debugEnvUrl":"http://localhost:8088" -} \ No newline at end of file diff --git a/mall-tiny-smart-doc/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-smart-doc/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-smart-doc/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-smart-doc/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-smart-doc/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index fa6880cf..00000000 --- a/mall-tiny-smart-doc/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-springdoc/.gitignore b/mall-tiny-springdoc/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-springdoc/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-springdoc/pom.xml b/mall-tiny-springdoc/pom.xml deleted file mode 100644 index 6709519e..00000000 --- a/mall-tiny-springdoc/pom.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-springdoc - 1.0-SNAPSHOT - mall-tiny-springdoc - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.7.0 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.1 - - - - com.alibaba - druid-spring-boot-starter - 1.2.8 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.7 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 5.7.22 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - org.springdoc - springdoc-openapi-ui - 1.6.9 - - - - com.github.xiaoymin - knife4j-springdoc-ui - 3.0.3 - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index 009806b7..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Lazy - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/swagger-ui.html", - "/swagger-ui/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v3/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - AdminUserDetails admin = adminService.getAdminByUsername(username); - if (admin != null) { - return admin; - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/SpringDocConfig.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/SpringDocConfig.java deleted file mode 100644 index ec990de2..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/config/SpringDocConfig.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.macro.mall.tiny.config; - -import io.swagger.v3.oas.models.Components; -import io.swagger.v3.oas.models.ExternalDocumentation; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; -import io.swagger.v3.oas.models.security.SecurityRequirement; -import io.swagger.v3.oas.models.security.SecurityScheme; -import org.springdoc.core.GroupedOpenApi; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * SpringDoc API文档相关配置 - * Created by macro on 2022/3/4. - */ -@Configuration -public class SpringDocConfig { - private static final String SECURITY_SCHEME_NAME = "Authorization"; - @Bean - public OpenAPI mallTinyOpenAPI() { - return new OpenAPI() - .info(new Info().title("Mall-Tiny API") - .description("SpringDoc API 演示") - .version("v1.0.0") - .license(new License().name("Apache 2.0").url("https://github.com/macrozheng/mall-learning"))) - .externalDocs(new ExternalDocumentation() - .description("SpringBoot实战电商项目mall(50K+Star)全套文档") - .url("http://www.macrozheng.com")) - .addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME)) - .components(new Components() - .addSecuritySchemes(SECURITY_SCHEME_NAME, - new SecurityScheme() - .name(SECURITY_SCHEME_NAME) - .type(SecurityScheme.Type.HTTP) - .scheme("bearer") - .bearerFormat("JWT"))); - } - - @Bean - public GroupedOpenApi publicApi() { - return GroupedOpenApi.builder() - .group("brand") - .pathsToMatch("/brand/**") - .build(); - } - - @Bean - public GroupedOpenApi adminApi() { - return GroupedOpenApi.builder() - .group("admin") - .pathsToMatch("/admin/**") - .build(); - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 46b1b43e..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Tag(name = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @Operation(summary = "获取所有品牌列表",description = "需要登录后访问") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @Operation(summary = "添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @Operation(summary = "更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @Operation(summary = "删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @Operation(summary = "分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @Parameter(description = "页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @Parameter(description = "每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @Operation(summary = "获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index 420be604..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Tag(name = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - - @Operation(summary = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - String token = adminService.login(username, password); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java deleted file mode 100644 index 3152ef66..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminUserDetails implements UserDetails { - private String username; - private String password; - private List authorityList; - @Override - public Collection getAuthorities() { - return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return this.password; - } - - @Override - public String getUsername() { - return this.username; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 0d69fd91..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import io.swagger.v3.oas.annotations.media.Schema; -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.v3.oas.annotations.media.Schema"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@Schema(title = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index deccb30f..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.v3.oas.annotations.media.Schema; - -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @Schema(title = "首字母") - private String firstLetter; - - private Integer sort; - - @Schema(title = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @Schema(title = "产品数量") - private Integer productCount; - - @Schema(title = "产品评论数量") - private Integer productCommentCount; - - @Schema(title = "品牌logo") - private String logo; - - @Schema(title = "专区大图") - private String bigPic; - - @Schema(title = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 6528582e..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminUserDetails; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUserDetails getAdminByUsername(String username); - - /** - * 用户名密码登录 - */ - String login(String username, String password); -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index b72fb4e3..00000000 --- a/mall-tiny-springdoc/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放默认用户信息 - */ - private List adminUserDetailsList = new ArrayList<>(); - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - - @PostConstruct - private void init(){ - adminUserDetailsList.add(AdminUserDetails.builder() - .username("admin") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_ADMIN")) - .build()); - adminUserDetailsList.add(AdminUserDetails.builder() - .username("macro") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_USER")) - .build()); - } - @Override - public AdminUserDetails getAdminByUsername(String username) { - List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(findList)){ - return findList.get(0); - } - return null; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = getAdminByUsername(username); - if(userDetails==null){ - return token; - } - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - log.warn("登录异常:{}", e.getMessage()); - } - return token; - } -} diff --git a/mall-tiny-springdoc/src/main/resources/application.yml b/mall-tiny-springdoc/src/main/resources/application.yml deleted file mode 100644 index 77aa8eb2..00000000 --- a/mall-tiny-springdoc/src/main/resources/application.yml +++ /dev/null @@ -1,36 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -#springdoc: -# swagger-ui: -# # 修改Swagger UI路径 -# path: /swagger-ui.html -# # 开启Swagger UI界面 -# enabled: true -# api-docs: -# # 修改api-docs路径 -# path: /v3/api-docs -# # 开启api-docs -# enabled: true -# # 配置需要生成接口文档的扫描包 -# packages-to-scan: com.macro.mall.tiny.controller -# # 配置需要生成接口文档的接口路径 -# paths-to-match: /brand/**,/admin/** \ No newline at end of file diff --git a/mall-tiny-springdoc/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-springdoc/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-springdoc/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-springdoc/src/main/resources/generator.properties b/mall-tiny-springdoc/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-springdoc/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-springdoc/src/main/resources/generatorConfig.xml b/mall-tiny-springdoc/src/main/resources/generatorConfig.xml deleted file mode 100644 index f806dbee..00000000 --- a/mall-tiny-springdoc/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-springdoc/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-springdoc/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index aeb37555..00000000 --- a/mall-tiny-springdoc/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@SpringBootTest -public class MallTinyApplicationTests { - - public void contextLoads() { - } - -} diff --git a/mall-tiny-stream/pom.xml b/mall-tiny-stream/pom.xml index d2e42f81..25f32448 100644 --- a/mall-tiny-stream/pom.xml +++ b/mall-tiny-stream/pom.xml @@ -2,21 +2,16 @@ 4.0.0 - com.macro.mall + mall-tiny-stream - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny-stream Demo project for Spring Boot - - 1.8 - - - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT @@ -41,36 +36,37 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.7 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + io.springfox - springfox-swagger2 - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} + - io.springfox - springfox-swagger-ui - 2.7.0 + org.projectlombok + lombok + true diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ec54365e 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.mbg.mapper") diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 3918a401..caa97432 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,32 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger相关配置 + * @date 2022/11/23 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - //为有@Api注解的Controller生成API文档 -// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) - //为有@ApiOperation注解的方法生成API文档 -// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } @@ -35,8 +42,42 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } + + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + } diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 857c9eca..e85860e7 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -18,8 +18,10 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/UmsMenuController.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/UmsMenuController.java new file mode 100644 index 00000000..aaeb18a1 --- /dev/null +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/UmsMenuController.java @@ -0,0 +1,37 @@ +package com.macro.mall.tiny.controller; +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.dto.UmsMenuNode; +import com.macro.mall.tiny.service.UmsMenuService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +/** + * @auther macrozheng + * @description 后台用户权限管理 + * @date 2018/9/29 + * @github https://github.com/macrozheng + */ +@Controller +@Api(tags = "UmsMenuController") +@Tag(name = "UmsMenuController",description = "后台菜单管理") +@RequestMapping("/menu") +public class UmsMenuController { + @Autowired + private UmsMenuService menuService; + + @ApiOperation("树形结构返回所有菜单列表") + @RequestMapping(value = "/treeList", method = RequestMethod.GET) + @ResponseBody + public CommonResult> treeList() { + List menuNodeList = menuService.treeList(); + return CommonResult.success(menuNodeList); + } +} diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/UmsPermissionController.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/UmsPermissionController.java deleted file mode 100644 index e25777fb..00000000 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/controller/UmsPermissionController.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.macro.mall.tiny.controller; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsPermissionNode; -import com.macro.mall.tiny.service.UmsPermissionService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.List; - -/** - * 后台用户权限管理 - * Created by macro on 2018/9/29. - */ -@Controller -@Api(tags = "UmsPermissionController", description = "后台用户权限管理") -@RequestMapping("/permission") -public class UmsPermissionController { - @Autowired - private UmsPermissionService permissionService; - - @ApiOperation("以层级结构返回所有权限") - @RequestMapping(value = "/treeList", method = RequestMethod.GET) - @ResponseBody - public CommonResult> treeList() { - List permissionNodeList = permissionService.treeList(); - return CommonResult.success(permissionNodeList); - } - - @ApiOperation("Stream API测试") - @RequestMapping(value = "/stream", method = RequestMethod.GET) - @ResponseBody - public CommonResult streamTest() { - permissionService.streamTest(); - return CommonResult.success(null,"操作成功"); - } -} diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/dto/UmsMenuNode.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/dto/UmsMenuNode.java new file mode 100644 index 00000000..21e534fb --- /dev/null +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/dto/UmsMenuNode.java @@ -0,0 +1,22 @@ +package com.macro.mall.tiny.dto; + +import com.macro.mall.tiny.mbg.model.UmsMenu; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + + +import java.util.List; + +/** + * @auther macrozheng + * @description 后台菜单节点封装 + * @date 2020/2/4 + * @github https://github.com/macrozheng + */ +@Getter +@Setter +public class UmsMenuNode extends UmsMenu { + @ApiModelProperty(value = "子级菜单") + private List children; +} diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/dto/UmsPermissionNode.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/dto/UmsPermissionNode.java deleted file mode 100644 index 97cb8f02..00000000 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/dto/UmsPermissionNode.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsPermission; - -import java.util.List; - -/** - * Created by macro on 2018/9/30. - */ -public class UmsPermissionNode extends UmsPermission { - private List children; - - public List getChildren() { - return children; - } - - public void setChildren(List children) { - this.children = children; - } -} diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java index 37d62163..408d4737 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -12,9 +12,9 @@ public interface PmsBrandMapper { int deleteByPrimaryKey(Long id); - int insert(PmsBrand record); + int insert(PmsBrand row); - int insertSelective(PmsBrand record); + int insertSelective(PmsBrand row); List selectByExampleWithBLOBs(PmsBrandExample example); @@ -22,15 +22,15 @@ public interface PmsBrandMapper { PmsBrand selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByPrimaryKeySelective(PmsBrand record); + int updateByPrimaryKeySelective(PmsBrand row); - int updateByPrimaryKeyWithBLOBs(PmsBrand record); + int updateByPrimaryKeyWithBLOBs(PmsBrand row); - int updateByPrimaryKey(PmsBrand record); + int updateByPrimaryKey(PmsBrand row); } \ No newline at end of file diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsMenuMapper.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsMenuMapper.java new file mode 100644 index 00000000..3f592b2d --- /dev/null +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsMenuMapper.java @@ -0,0 +1,30 @@ +package com.macro.mall.tiny.mbg.mapper; + +import com.macro.mall.tiny.mbg.model.UmsMenu; +import com.macro.mall.tiny.mbg.model.UmsMenuExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface UmsMenuMapper { + long countByExample(UmsMenuExample example); + + int deleteByExample(UmsMenuExample example); + + int deleteByPrimaryKey(Long id); + + int insert(UmsMenu row); + + int insertSelective(UmsMenu row); + + List selectByExample(UmsMenuExample example); + + UmsMenu selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("row") UmsMenu row, @Param("example") UmsMenuExample example); + + int updateByExample(@Param("row") UmsMenu row, @Param("example") UmsMenuExample example); + + int updateByPrimaryKeySelective(UmsMenu row); + + int updateByPrimaryKey(UmsMenu row); +} \ No newline at end of file diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index ce8b0b2d..00000000 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - long countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java index 4e4a1108..c7e5880b 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -11,7 +11,7 @@ public class PmsBrandExample { protected List oredCriteria; public PmsBrandExample() { - oredCriteria = new ArrayList(); + oredCriteria = new ArrayList<>(); } public void setOrderByClause(String orderByClause) { @@ -68,7 +68,7 @@ protected abstract static class GeneratedCriteria { protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -746,7 +746,6 @@ public Criteria andBigPicNotBetween(String value1, String value2) { } public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsMenu.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsMenu.java new file mode 100644 index 00000000..d26c31de --- /dev/null +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsMenu.java @@ -0,0 +1,127 @@ +package com.macro.mall.tiny.mbg.model; + +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; + +public class UmsMenu implements Serializable { + private Long id; + + @ApiModelProperty(value = "父级ID") + private Long parentId; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "菜单名称") + private String title; + + @ApiModelProperty(value = "菜单级数") + private Integer level; + + @ApiModelProperty(value = "菜单排序") + private Integer sort; + + @ApiModelProperty(value = "前端名称") + private String name; + + @ApiModelProperty(value = "前端图标") + private String icon; + + @ApiModelProperty(value = "前端隐藏") + private Integer hidden; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Integer getLevel() { + return level; + } + + public void setLevel(Integer level) { + this.level = level; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public Integer getHidden() { + return hidden; + } + + public void setHidden(Integer hidden) { + this.hidden = hidden; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", parentId=").append(parentId); + sb.append(", createTime=").append(createTime); + sb.append(", title=").append(title); + sb.append(", level=").append(level); + sb.append(", sort=").append(sort); + sb.append(", name=").append(name); + sb.append(", icon=").append(icon); + sb.append(", hidden=").append(hidden); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsMenuExample.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsMenuExample.java new file mode 100644 index 00000000..1cef90b1 --- /dev/null +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsMenuExample.java @@ -0,0 +1,770 @@ +package com.macro.mall.tiny.mbg.model; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class UmsMenuExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public UmsMenuExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andParentIdIsNull() { + addCriterion("parent_id is null"); + return (Criteria) this; + } + + public Criteria andParentIdIsNotNull() { + addCriterion("parent_id is not null"); + return (Criteria) this; + } + + public Criteria andParentIdEqualTo(Long value) { + addCriterion("parent_id =", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotEqualTo(Long value) { + addCriterion("parent_id <>", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThan(Long value) { + addCriterion("parent_id >", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThanOrEqualTo(Long value) { + addCriterion("parent_id >=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThan(Long value) { + addCriterion("parent_id <", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThanOrEqualTo(Long value) { + addCriterion("parent_id <=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdIn(List values) { + addCriterion("parent_id in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotIn(List values) { + addCriterion("parent_id not in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdBetween(Long value1, Long value2) { + addCriterion("parent_id between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotBetween(Long value1, Long value2) { + addCriterion("parent_id not between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andTitleIsNull() { + addCriterion("title is null"); + return (Criteria) this; + } + + public Criteria andTitleIsNotNull() { + addCriterion("title is not null"); + return (Criteria) this; + } + + public Criteria andTitleEqualTo(String value) { + addCriterion("title =", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleNotEqualTo(String value) { + addCriterion("title <>", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleGreaterThan(String value) { + addCriterion("title >", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleGreaterThanOrEqualTo(String value) { + addCriterion("title >=", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleLessThan(String value) { + addCriterion("title <", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleLessThanOrEqualTo(String value) { + addCriterion("title <=", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleLike(String value) { + addCriterion("title like", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleNotLike(String value) { + addCriterion("title not like", value, "title"); + return (Criteria) this; + } + + public Criteria andTitleIn(List values) { + addCriterion("title in", values, "title"); + return (Criteria) this; + } + + public Criteria andTitleNotIn(List values) { + addCriterion("title not in", values, "title"); + return (Criteria) this; + } + + public Criteria andTitleBetween(String value1, String value2) { + addCriterion("title between", value1, value2, "title"); + return (Criteria) this; + } + + public Criteria andTitleNotBetween(String value1, String value2) { + addCriterion("title not between", value1, value2, "title"); + return (Criteria) this; + } + + public Criteria andLevelIsNull() { + addCriterion("level is null"); + return (Criteria) this; + } + + public Criteria andLevelIsNotNull() { + addCriterion("level is not null"); + return (Criteria) this; + } + + public Criteria andLevelEqualTo(Integer value) { + addCriterion("level =", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotEqualTo(Integer value) { + addCriterion("level <>", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThan(Integer value) { + addCriterion("level >", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThanOrEqualTo(Integer value) { + addCriterion("level >=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThan(Integer value) { + addCriterion("level <", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThanOrEqualTo(Integer value) { + addCriterion("level <=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelIn(List values) { + addCriterion("level in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotIn(List values) { + addCriterion("level not in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelBetween(Integer value1, Integer value2) { + addCriterion("level between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotBetween(Integer value1, Integer value2) { + addCriterion("level not between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(Integer value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(Integer value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(Integer value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(Integer value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(Integer value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(Integer value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(Integer value1, Integer value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(Integer value1, Integer value2) { + addCriterion("sort not between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andIconIsNull() { + addCriterion("icon is null"); + return (Criteria) this; + } + + public Criteria andIconIsNotNull() { + addCriterion("icon is not null"); + return (Criteria) this; + } + + public Criteria andIconEqualTo(String value) { + addCriterion("icon =", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconNotEqualTo(String value) { + addCriterion("icon <>", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconGreaterThan(String value) { + addCriterion("icon >", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconGreaterThanOrEqualTo(String value) { + addCriterion("icon >=", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconLessThan(String value) { + addCriterion("icon <", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconLessThanOrEqualTo(String value) { + addCriterion("icon <=", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconLike(String value) { + addCriterion("icon like", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconNotLike(String value) { + addCriterion("icon not like", value, "icon"); + return (Criteria) this; + } + + public Criteria andIconIn(List values) { + addCriterion("icon in", values, "icon"); + return (Criteria) this; + } + + public Criteria andIconNotIn(List values) { + addCriterion("icon not in", values, "icon"); + return (Criteria) this; + } + + public Criteria andIconBetween(String value1, String value2) { + addCriterion("icon between", value1, value2, "icon"); + return (Criteria) this; + } + + public Criteria andIconNotBetween(String value1, String value2) { + addCriterion("icon not between", value1, value2, "icon"); + return (Criteria) this; + } + + public Criteria andHiddenIsNull() { + addCriterion("hidden is null"); + return (Criteria) this; + } + + public Criteria andHiddenIsNotNull() { + addCriterion("hidden is not null"); + return (Criteria) this; + } + + public Criteria andHiddenEqualTo(Integer value) { + addCriterion("hidden =", value, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenNotEqualTo(Integer value) { + addCriterion("hidden <>", value, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenGreaterThan(Integer value) { + addCriterion("hidden >", value, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenGreaterThanOrEqualTo(Integer value) { + addCriterion("hidden >=", value, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenLessThan(Integer value) { + addCriterion("hidden <", value, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenLessThanOrEqualTo(Integer value) { + addCriterion("hidden <=", value, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenIn(List values) { + addCriterion("hidden in", values, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenNotIn(List values) { + addCriterion("hidden not in", values, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenBetween(Integer value1, Integer value2) { + addCriterion("hidden between", value1, value2, "hidden"); + return (Criteria) this; + } + + public Criteria andHiddenNotBetween(Integer value1, Integer value2) { + addCriterion("hidden not between", value1, value2, "hidden"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/UmsMenuService.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/UmsMenuService.java new file mode 100644 index 00000000..2821b522 --- /dev/null +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/UmsMenuService.java @@ -0,0 +1,20 @@ +package com.macro.mall.tiny.service; + + +import com.macro.mall.tiny.dto.UmsMenuNode; + +import java.util.List; + +/** + * @auther macrozheng + * @description 后台用户权限管理Service + * @date 2018/9/29 + * @github https://github.com/macrozheng + */ +public interface UmsMenuService { + + /** + * 树形结构返回所有菜单列表 + */ + List treeList(); +} diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/UmsPermissionService.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/UmsPermissionService.java deleted file mode 100644 index 73dcaca6..00000000 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/UmsPermissionService.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.dto.UmsPermissionNode; - -import java.util.List; - -/** - * 后台用户权限管理Service - * Created by macro on 2018/9/29. - */ -public interface UmsPermissionService { - - /** - * 以层级结构返回所有权限 - */ - List treeList(); - - void streamTest(); -} diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/UmsMenuServiceImpl.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/UmsMenuServiceImpl.java new file mode 100644 index 00000000..b9365d5c --- /dev/null +++ b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/UmsMenuServiceImpl.java @@ -0,0 +1,52 @@ +package com.macro.mall.tiny.service.impl; + +import com.macro.mall.tiny.dto.UmsMenuNode; +import com.macro.mall.tiny.mbg.mapper.UmsMenuMapper; +import com.macro.mall.tiny.mbg.model.UmsMenuExample; +import com.macro.mall.tiny.mbg.model.UmsMenu; +import com.macro.mall.tiny.mbg.model.UmsMenuExample; +import com.macro.mall.tiny.service.UmsMenuService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @auther macrozheng + * @description 后台菜单管理Service实现类 + * @date 2020/2/2 + * @github https://github.com/macrozheng + */ +@Service +public class UmsMenuServiceImpl implements UmsMenuService { + private Logger LOGGER = LoggerFactory.getLogger(this.getClass().getName()); + @Autowired + private UmsMenuMapper menuMapper; + + @Override + public List treeList() { + List menuList = menuMapper.selectByExample(new UmsMenuExample()); + List result = menuList.stream() + .filter(menu -> menu.getParentId().equals(0L)) + .map(menu -> covertMenuNode(menu, menuList)).collect(Collectors.toList()); + return result; + } + + /** + * 将UmsMenu转化为UmsMenuNode并设置children属性 + */ + private UmsMenuNode covertMenuNode(UmsMenu menu, List menuList) { + UmsMenuNode node = new UmsMenuNode(); + BeanUtils.copyProperties(menu, node); + List children = menuList.stream() + .filter(subMenu -> subMenu.getParentId().equals(menu.getId())) + .map(subMenu -> covertMenuNode(subMenu, menuList)).collect(Collectors.toList()); + node.setChildren(children); + return node; + } +} diff --git a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/UmsPermissionServiceImpl.java b/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/UmsPermissionServiceImpl.java deleted file mode 100644 index fe1477bd..00000000 --- a/mall-tiny-stream/src/main/java/com/macro/mall/tiny/service/impl/UmsPermissionServiceImpl.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.macro.mall.tiny.dto.UmsPermissionNode; -import com.macro.mall.tiny.mbg.mapper.UmsPermissionMapper; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import com.macro.mall.tiny.service.UmsPermissionService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** - * 后台用户权限管理Service实现类 - * Created by macro on 2018/9/29. - */ -@Service -public class UmsPermissionServiceImpl implements UmsPermissionService { - private Logger LOGGER = LoggerFactory.getLogger(this.getClass().getName()); - @Autowired - private UmsPermissionMapper permissionMapper; - - @Override - public void streamTest() { - List permissionList = permissionMapper.selectByExample(new UmsPermissionExample()); - //filter操作:获取权限类型为目录的权限 - List dirList = permissionList.stream() - .filter(permission -> permission.getType() == 0) - .collect(Collectors.toList()); - LOGGER.info("filter操作:{}",dirList); - //map操作:获取所有权限的id - List idList = permissionList.stream() - .map(permission -> permission.getId()) - .collect(Collectors.toList()); - LOGGER.info("map操作:{}",idList); - //limit操作:获取前5个权限 - List firstFiveList = permissionList.stream() - .limit(5) - .collect(Collectors.toList()); - LOGGER.info("limit操作:{}",firstFiveList); - //count操作:获取所有权限目录权限的个数 - long dirPermissionCount = permissionList.stream() - .filter(permission -> permission.getType() == 0) - .count(); - LOGGER.info("count操作:{}",dirPermissionCount); - //sorted操作:将所有权限按先目录后菜单再按钮的顺序排序 - List sortedList = permissionList.stream() - .sorted((permission1,permission2)->{return permission1.getType().compareTo(permission2.getType());}) - .collect(Collectors.toList()); - LOGGER.info("sorted操作:{}",sortedList); - //skip操作:跳过前5个元素,返回后面的 - List skipList = permissionList.stream() - .skip(5) - .collect(Collectors.toList()); - LOGGER.info("skip操作:{}",skipList); - //collect转map操作:将权限列表以id为key,以权限对象为值转换成map - Map permissionMap = permissionList.stream() - .collect(Collectors.toMap(permission -> permission.getId(), permission -> permission)); - LOGGER.info("collect转map操作:{}",permissionMap); - //forEach操作,对集合中的元素进行迭代 - permissionList.stream().forEach(permission-> LOGGER.info("forEach操作{}",permission)); - } - - @Override - public List treeList() { - List permissionList = permissionMapper.selectByExample(new UmsPermissionExample()); - List result = permissionList.stream() - .filter(permission -> permission.getPid().equals(0L)) - .map(permission -> covert(permission, permissionList)).collect(Collectors.toList()); - return result; - } - - /** - * 将权限转换为带有子级的权限对象 - * 当找不到子级权限的时候map操作不会再递归调用covert - */ - private UmsPermissionNode covert(UmsPermission permission, List permissionList) { - UmsPermissionNode node = new UmsPermissionNode(); - BeanUtils.copyProperties(permission, node); - List children = permissionList.stream() - .filter(subPermission -> subPermission.getPid().equals(permission.getId())) - .map(subPermission -> covert(subPermission, permissionList)).collect(Collectors.toList()); - node.setChildren(children); - return node; - } -} diff --git a/mall-tiny-stream/src/main/resources/application.yml b/mall-tiny-stream/src/main/resources/application.yml index 5edcbdbc..71b5de46 100644 --- a/mall-tiny-stream/src/main/resources/application.yml +++ b/mall-tiny-stream/src/main/resources/application.yml @@ -3,9 +3,12 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER mybatis: mapper-locations: diff --git a/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml index 51b5436b..8d47261a 100644 --- a/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ b/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -221,74 +221,74 @@ update pms_brand - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, - - show_status = #{record.showStatus,jdbcType=INTEGER}, + + show_status = #{row.showStatus,jdbcType=INTEGER}, - - product_count = #{record.productCount,jdbcType=INTEGER}, + + product_count = #{row.productCount,jdbcType=INTEGER}, - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, - - logo = #{record.logo,jdbcType=VARCHAR}, + + logo = #{row.logo,jdbcType=VARCHAR}, - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, - + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + diff --git a/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsMenuMapper.xml b/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsMenuMapper.xml new file mode 100644 index 00000000..e65716fc --- /dev/null +++ b/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsMenuMapper.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, parent_id, create_time, title, level, sort, name, icon, hidden + + + + + delete from ums_menu + where id = #{id,jdbcType=BIGINT} + + + delete from ums_menu + + + + + + + SELECT LAST_INSERT_ID() + + insert into ums_menu (parent_id, create_time, title, + level, sort, name, + icon, hidden) + values (#{parentId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{title,jdbcType=VARCHAR}, + #{level,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, + #{icon,jdbcType=VARCHAR}, #{hidden,jdbcType=INTEGER}) + + + + SELECT LAST_INSERT_ID() + + insert into ums_menu + + + parent_id, + + + create_time, + + + title, + + + level, + + + sort, + + + name, + + + icon, + + + hidden, + + + + + #{parentId,jdbcType=BIGINT}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{title,jdbcType=VARCHAR}, + + + #{level,jdbcType=INTEGER}, + + + #{sort,jdbcType=INTEGER}, + + + #{name,jdbcType=VARCHAR}, + + + #{icon,jdbcType=VARCHAR}, + + + #{hidden,jdbcType=INTEGER}, + + + + + + update ums_menu + + + id = #{row.id,jdbcType=BIGINT}, + + + parent_id = #{row.parentId,jdbcType=BIGINT}, + + + create_time = #{row.createTime,jdbcType=TIMESTAMP}, + + + title = #{row.title,jdbcType=VARCHAR}, + + + level = #{row.level,jdbcType=INTEGER}, + + + sort = #{row.sort,jdbcType=INTEGER}, + + + name = #{row.name,jdbcType=VARCHAR}, + + + icon = #{row.icon,jdbcType=VARCHAR}, + + + hidden = #{row.hidden,jdbcType=INTEGER}, + + + + + + + + update ums_menu + set id = #{row.id,jdbcType=BIGINT}, + parent_id = #{row.parentId,jdbcType=BIGINT}, + create_time = #{row.createTime,jdbcType=TIMESTAMP}, + title = #{row.title,jdbcType=VARCHAR}, + level = #{row.level,jdbcType=INTEGER}, + sort = #{row.sort,jdbcType=INTEGER}, + name = #{row.name,jdbcType=VARCHAR}, + icon = #{row.icon,jdbcType=VARCHAR}, + hidden = #{row.hidden,jdbcType=INTEGER} + + + + + + update ums_menu + + + parent_id = #{parentId,jdbcType=BIGINT}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + title = #{title,jdbcType=VARCHAR}, + + + level = #{level,jdbcType=INTEGER}, + + + sort = #{sort,jdbcType=INTEGER}, + + + name = #{name,jdbcType=VARCHAR}, + + + icon = #{icon,jdbcType=VARCHAR}, + + + hidden = #{hidden,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=BIGINT} + + + update ums_menu + set parent_id = #{parentId,jdbcType=BIGINT}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + title = #{title,jdbcType=VARCHAR}, + level = #{level,jdbcType=INTEGER}, + sort = #{sort,jdbcType=INTEGER}, + name = #{name,jdbcType=VARCHAR}, + icon = #{icon,jdbcType=VARCHAR}, + hidden = #{hidden,jdbcType=INTEGER} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 581e53c0..00000000 --- a/mall-tiny-stream/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-stream/src/main/resources/generator.properties b/mall-tiny-stream/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-stream/src/main/resources/generator.properties +++ b/mall-tiny-stream/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-stream/src/main/resources/generatorConfig.xml b/mall-tiny-stream/src/main/resources/generatorConfig.xml index 3e060d06..ba5a5644 100644 --- a/mall-tiny-stream/src/main/resources/generatorConfig.xml +++ b/mall-tiny-stream/src/main/resources/generatorConfig.xml @@ -41,7 +41,7 @@
- +
diff --git a/mall-tiny-stream/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-stream/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny-stream/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-stream/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/mall-tiny-stream/src/test/java/com/macro/mall/tiny/stream/StreamApiTest.java b/mall-tiny-stream/src/test/java/com/macro/mall/tiny/stream/StreamApiTest.java new file mode 100644 index 00000000..44079a75 --- /dev/null +++ b/mall-tiny-stream/src/test/java/com/macro/mall/tiny/stream/StreamApiTest.java @@ -0,0 +1,97 @@ +package com.macro.mall.tiny.stream; + +import com.macro.mall.tiny.mbg.mapper.UmsMenuMapper; +import com.macro.mall.tiny.mbg.model.UmsMenu; +import com.macro.mall.tiny.mbg.model.UmsMenuExample; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@SpringBootTest +public class StreamApiTest { + private static final Logger LOGGER = LoggerFactory.getLogger(StreamApiTest.class); + @Autowired + private UmsMenuMapper menuMapper; + private List menuList; + + @BeforeEach + void eachInit(){ + menuList = menuMapper.selectByExample(new UmsMenuExample()); + LOGGER.info("eachInit():在测试方法前执行,每个测试方法前都执行"); + } + + @Test + public void filterTest(){ + //filter操作:获取所有一级菜单 + List oneLevelList = menuList.stream() + .filter(menu -> menu.getParentId() == 0L) + .collect(Collectors.toList()); + LOGGER.info("filter操作:{}",oneLevelList); + } + + @Test + public void mapTest(){ + //map操作:获取所有菜单的id + List idList = menuList.stream() + .map(menu -> menu.getId()) + .collect(Collectors.toList()); + LOGGER.info("map操作:{}",idList); + } + + @Test + public void limitTest(){ + //limit操作:获取前5个菜单 + List firstFiveList = menuList.stream() + .limit(5) + .collect(Collectors.toList()); + LOGGER.info("limit操作:{}",firstFiveList); + } + + @Test + public void countTest(){ + //count操作:获取所有一级菜单的个数 + long count = menuList.stream() + .filter(menu -> menu.getParentId() == 0L) + .count(); + LOGGER.info("count操作:{}",count); + } + + @Test + public void sortedTest(){ + //sorted操作:将所有菜单按照sort字段进行排序 + List sortedList = menuList.stream() + .sorted((menu1,menu2)->{return menu2.getSort().compareTo(menu1.getSort());}) + .collect(Collectors.toList()); + LOGGER.info("sorted操作:{}",sortedList); + } + + @Test + public void skipTest(){ + //skip操作:跳过前5个元素,返回后面的 + List skipList = menuList.stream() + .skip(5) + .collect(Collectors.toList()); + LOGGER.info("skip操作:{}",skipList); + } + + @Test + public void collect2mapTest(){ + //collect转map操作:将菜单列表以id为key,以菜单对象为值转换成map + Map menuMap = menuList.stream() + .collect(Collectors.toMap(menu -> menu.getId(), menu -> menu)); + LOGGER.info("collect转map操作:{}",menuMap); + } + + @Test + public void forEachTest(){ + //forEach操作,对集合中的元素进行迭代 + menuList.stream().forEach(menu-> LOGGER.info("forEach操作{}",menu)); + } +} diff --git a/mall-tiny-swagger/pom.xml b/mall-tiny-swagger/pom.xml index e27a6313..c7330cc1 100644 --- a/mall-tiny-swagger/pom.xml +++ b/mall-tiny-swagger/pom.xml @@ -2,25 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny-swagger 1.0-SNAPSHOT mall-tiny-swagger Demo project for Spring Boot - - UTF-8 - UTF-8 - 1.8 - true - - - org.springframework.boot - spring-boot-starter-parent - 2.2.0.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -44,25 +37,25 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.3 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} @@ -79,19 +72,19 @@ cn.hutool hutool-all - 4.5.7 + ${hutool.version} io.jsonwebtoken jjwt - 0.9.0 + ${jjwt.version} io.springfox springfox-boot-starter - 3.0.0 + ${springfox-swagger.version} diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index eb6c7bd9..09aab3d7 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -5,8 +5,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..89948c22 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回对象 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..2ff25ea5 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 封装API的错误码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..e34a4cfd 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 枚举了一些常用API操作码 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java index abdb7b71..65cc9fcb 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java @@ -19,8 +19,10 @@ import java.io.IOException; /** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description JWT登录授权过滤器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java index 757df36c..1445038f 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. + * @auther macrozheng + * @description 当未登录或者token失效访问接口时,自定义的返回结果 + * @date 2018/5/14 + * @github https://github.com/macrozheng */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java index bc201cce..769dbfc3 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 当访问接口没有权限时,自定义的返回结果 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index e680ce8a..ec54365e 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -4,8 +4,10 @@ import org.springframework.context.annotation.Configuration; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis配置类 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration @MapperScan("com.macro.mall.tiny.mbg.mapper") diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java index ddb793de..a5e50a0e 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; @@ -20,17 +21,21 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; /** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description SpringSecurity的配置 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { +public class SecurityConfig { + @Lazy @Autowired private UmsAdminService adminService; @Autowired @@ -38,8 +43,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf .disable() .sessionManagement()// 基于token,所以不需要session @@ -72,12 +77,7 @@ protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.exceptionHandling() .accessDeniedHandler(restfulAccessDeniedHandler) .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); + return httpSecurity.build(); } @Bean @@ -102,10 +102,4 @@ public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { return new JwtAuthenticationTokenFilter(); } - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - } diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 0115ca4f..47b40cac 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,7 +1,11 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; @@ -9,12 +13,19 @@ import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger相关配置(带认证) + * @date 2022/11/23 + * @github https://github.com/macrozheng */ @Configuration public class Swagger2Config { @@ -70,4 +81,38 @@ private List defaultAuth() { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } + } diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 66508034..e972b088 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -4,9 +4,8 @@ import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.mbg.model.PmsBrand; import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.annotations.*; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +18,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired @@ -59,7 +61,7 @@ public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody @PreAuthorize("hasRole('ADMIN')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { + public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto) { CommonResult commonResult; int count = brandService.updateBrand(id, pmsBrandDto); if (count == 1) { @@ -93,7 +95,7 @@ public CommonResult deleteBrand(@PathVariable("id") Long id) { @PreAuthorize("hasRole('ADMIN')") public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") + @RequestParam(value = "pageSize", defaultValue = "5") @ApiParam("每页数量") Integer pageSize) { List brandList = brandService.listBrand(pageNum, pageSize); return CommonResult.success(CommonPage.restPage(brandList)); diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index 27e9d37d..b5214f1a 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -3,7 +3,12 @@ import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.service.UmsAdminService; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -16,11 +21,14 @@ import java.util.Map; /** - * 后台用户管理 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { @Autowired @@ -30,9 +38,16 @@ public class UmsAdminController { @Value("${jwt.tokenHead}") private String tokenHead; - - @ApiOperation(value = "登录以后返回token") @RequestMapping(value = "/login", method = RequestMethod.POST) + @ApiOperation(value = "登录以后返回token") + @ApiImplicitParams({ + @ApiImplicitParam(name = "username", value = "用户名", required = true, dataTypeClass = String.class), + @ApiImplicitParam(name = "password", value = "密码", required = true, dataTypeClass = String.class) + }) + @ApiResponses({ + @ApiResponse(responseCode = "401", description = "暂未登录或token已经过期"), + @ApiResponse(responseCode = "403", description = "没有相关权限"), + }) @ResponseBody public CommonResult login(@RequestParam String username, @RequestParam String password) { String token = adminService.login(username, password); diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java index 3152ef66..c26f1b96 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java @@ -12,7 +12,10 @@ import java.util.stream.Collectors; /** - * Created by macro on 2020/10/15. + * @auther macrozheng + * @description SpringSecurity用户信息封装类 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ @Data @EqualsAndHashCode(callSuper = false) diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..64248802 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 用于生产MBG的代码 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java index 617584fb..408d4737 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -6,15 +6,15 @@ import org.apache.ibatis.annotations.Param; public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); + long countByExample(PmsBrandExample example); int deleteByExample(PmsBrandExample example); int deleteByPrimaryKey(Long id); - int insert(PmsBrand record); + int insert(PmsBrand row); - int insertSelective(PmsBrand record); + int insertSelective(PmsBrand row); List selectByExampleWithBLOBs(PmsBrandExample example); @@ -22,15 +22,15 @@ public interface PmsBrandMapper { PmsBrand selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByPrimaryKeySelective(PmsBrand record); + int updateByPrimaryKeySelective(PmsBrand row); - int updateByPrimaryKeyWithBLOBs(PmsBrand record); + int updateByPrimaryKeyWithBLOBs(PmsBrand row); - int updateByPrimaryKey(PmsBrand record); + int updateByPrimaryKey(PmsBrand row); } \ No newline at end of file diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java index 0d5dde95..9cd1d958 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java @@ -1,21 +1,27 @@ package com.macro.mall.tiny.mbg.model; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; +@ApiModel(value = "PmsBrand",description = "商品品牌") public class PmsBrand implements Serializable { + @ApiModelProperty(value = "主键ID") private Long id; + @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "首字母") private String firstLetter; + @ApiModelProperty(value = "排序") private Integer sort; @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") private Integer factoryStatus; + @ApiModelProperty(value = "是否显示") private Integer showStatus; @ApiModelProperty(value = "产品数量") diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java index 4e4a1108..c7e5880b 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -11,7 +11,7 @@ public class PmsBrandExample { protected List oredCriteria; public PmsBrandExample() { - oredCriteria = new ArrayList(); + oredCriteria = new ArrayList<>(); } public void setOrderByClause(String orderByClause) { @@ -68,7 +68,7 @@ protected abstract static class GeneratedCriteria { protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -746,7 +746,6 @@ public Criteria andBigPicNotBetween(String value1, String value2) { } public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 6528582e..42c737a2 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.domain.AdminUserDetails; /** - * 后台用于管理Service - * Created by macro on 2020/10/15. + * @auther macrozheng + * @description 后台用于管理Service + * @date 2020/10/15 + * @github https://github.com/macrozheng */ public interface UmsAdminService { /** diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 45347be4..b72fb4e3 100644 --- a/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny-swagger/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -6,6 +6,7 @@ import com.macro.mall.tiny.service.UmsAdminService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.AuthenticationException; diff --git a/mall-tiny-swagger/src/main/resources/application.yml b/mall-tiny-swagger/src/main/resources/application.yml index 5a618a77..d0d00bf2 100644 --- a/mall-tiny-swagger/src/main/resources/application.yml +++ b/mall-tiny-swagger/src/main/resources/application.yml @@ -3,13 +3,16 @@ server: spring: datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml # 自定义jwt key @@ -17,8 +20,4 @@ jwt: tokenHeader: Authorization #JWT存储的请求头 secret: mySecret #JWT加解密使用的密钥 expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -springfox: - documentation: - enabled: true \ No newline at end of file + tokenHead: Bearer #JWT负载中拿到开头 \ No newline at end of file diff --git a/mall-tiny-swagger/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-swagger/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml index 1842e269..8d47261a 100644 --- a/mall-tiny-swagger/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ b/mall-tiny-swagger/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -212,7 +212,7 @@ - select count(*) from pms_brand @@ -221,74 +221,74 @@ update pms_brand - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, - - show_status = #{record.showStatus,jdbcType=INTEGER}, + + show_status = #{row.showStatus,jdbcType=INTEGER}, - - product_count = #{record.productCount,jdbcType=INTEGER}, + + product_count = #{row.productCount,jdbcType=INTEGER}, - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, - - logo = #{record.logo,jdbcType=VARCHAR}, + + logo = #{row.logo,jdbcType=VARCHAR}, - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, - + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + diff --git a/mall-tiny-swagger/src/main/resources/generator.properties b/mall-tiny-swagger/src/main/resources/generator.properties index 173547bb..c714398a 100644 --- a/mall-tiny-swagger/src/main/resources/generator.properties +++ b/mall-tiny-swagger/src/main/resources/generator.properties @@ -1,4 +1,4 @@ jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai +jdbc.connectionURL=jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai jdbc.userId=root jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-swagger/src/main/resources/generatorConfig.xml b/mall-tiny-swagger/src/main/resources/generatorConfig.xml index d2818278..bebc1ca9 100644 --- a/mall-tiny-swagger/src/main/resources/generatorConfig.xml +++ b/mall-tiny-swagger/src/main/resources/generatorConfig.xml @@ -6,33 +6,40 @@ + + + + + - + + + - + - + - + - + - + diff --git a/mall-tiny-swagger/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java b/mall-tiny-swagger/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java deleted file mode 100644 index 861094e9..00000000 --- a/mall-tiny-swagger/src/test/java/com/macro/mall/tiny/MallTiny01ApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTiny01ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-swagger/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-swagger/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..aeb37555 100644 --- a/mall-tiny-swagger/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny-swagger/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,15 +1,11 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { - @Test public void contextLoads() { } diff --git a/mall-tiny-swagger2/.gitignore b/mall-tiny-swagger2/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-swagger2/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-swagger2/pom.xml b/mall-tiny-swagger2/pom.xml deleted file mode 100644 index 3ba99ff2..00000000 --- a/mall-tiny-swagger2/pom.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-swagger2 - 1.0-SNAPSHOT - mall-tiny-swagger2 - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.6.4 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.1 - - - - com.alibaba - druid-spring-boot-starter - 1.2.8 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.7 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 5.7.22 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index cb4e264e..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Lazy - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/swagger-ui/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - AdminUserDetails admin = adminService.getAdminByUsername(username); - if (admin != null) { - return admin; - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 595bbc97..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.ReflectionUtils; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -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.spring.web.plugins.WebFluxRequestHandlerProvider; -import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - 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; - } - - @Bean - public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { - return new BeanPostProcessor() { - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { - customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); - } - return bean; - } - - private void customizeSpringfoxHandlerMappings(List mappings) { - List copy = mappings.stream() - .filter(mapping -> mapping.getPatternParser() == null) - .collect(Collectors.toList()); - mappings.clear(); - mappings.addAll(copy); - } - - @SuppressWarnings("unchecked") - private List getHandlerMappings(Object bean) { - try { - Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); - field.setAccessible(true); - return (List) field.get(bean); - } catch (IllegalArgumentException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - }; - } - -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 66508034..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index 27e9d37d..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - String token = adminService.login(username, password); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java deleted file mode 100644 index 3152ef66..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminUserDetails implements UserDetails { - private String username; - private String password; - private List authorityList; - @Override - public Collection getAuthorities() { - return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return this.password; - } - - @Override - public String getUsername() { - return this.username; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 6528582e..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminUserDetails; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUserDetails getAdminByUsername(String username); - - /** - * 用户名密码登录 - */ - String login(String username, String password); -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index b72fb4e3..00000000 --- a/mall-tiny-swagger2/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放默认用户信息 - */ - private List adminUserDetailsList = new ArrayList<>(); - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - - @PostConstruct - private void init(){ - adminUserDetailsList.add(AdminUserDetails.builder() - .username("admin") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_ADMIN")) - .build()); - adminUserDetailsList.add(AdminUserDetails.builder() - .username("macro") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_USER")) - .build()); - } - @Override - public AdminUserDetails getAdminByUsername(String username) { - List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(findList)){ - return findList.get(0); - } - return null; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = getAdminByUsername(username); - if(userDetails==null){ - return token; - } - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - log.warn("登录异常:{}", e.getMessage()); - } - return token; - } -} diff --git a/mall-tiny-swagger2/src/main/resources/application.yml b/mall-tiny-swagger2/src/main/resources/application.yml deleted file mode 100644 index 95ff3985..00000000 --- a/mall-tiny-swagger2/src/main/resources/application.yml +++ /dev/null @@ -1,29 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root -# main: -# allow-circular-references: true - mvc: - pathmatch: - matching-strategy: ANT_PATH_MATCHER - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -springfox: - documentation: - enabled: true \ No newline at end of file diff --git a/mall-tiny-swagger2/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-swagger2/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-swagger2/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-swagger2/src/main/resources/generator.properties b/mall-tiny-swagger2/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-swagger2/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-swagger2/src/main/resources/generatorConfig.xml b/mall-tiny-swagger2/src/main/resources/generatorConfig.xml deleted file mode 100644 index fb234c4f..00000000 --- a/mall-tiny-swagger2/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-swagger2/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-swagger2/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index aeb37555..00000000 --- a/mall-tiny-swagger2/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@SpringBootTest -public class MallTinyApplicationTests { - - public void contextLoads() { - } - -} diff --git a/mall-tiny-test/.gitignore b/mall-tiny-test/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-test/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-test/pom.xml b/mall-tiny-test/pom.xml deleted file mode 100644 index 584fc89c..00000000 --- a/mall-tiny-test/pom.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-test - 1.0-SNAPSHOT - mall-tiny-test - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.7.0 - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - org.projectlombok - lombok - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.2 - - - - com.alibaba - druid-spring-boot-starter - 1.2.9 - - - - org.mybatis.generator - mybatis-generator-core - 1.4.1 - - - - mysql - mysql-connector-java - 8.0.15 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - org.projectlombok - lombok - true - - - - cn.hutool - hutool-all - 5.8.0 - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 595bbc97..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.ReflectionUtils; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -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.spring.web.plugins.WebFluxRequestHandlerProvider; -import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - 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; - } - - @Bean - public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { - return new BeanPostProcessor() { - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { - customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); - } - return bean; - } - - private void customizeSpringfoxHandlerMappings(List mappings) { - List copy = mappings.stream() - .filter(mapping -> mapping.getPatternParser() == null) - .collect(Collectors.toList()); - mappings.clear(); - mappings.addAll(copy); - } - - @SuppressWarnings("unchecked") - private List getHandlerMappings(Object bean) { - try { - Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); - field.setAccessible(true); - return (List) field.get(bean); - } catch (IllegalArgumentException | IllegalAccessException e) { - throw new IllegalStateException(e); - } - } - }; - } - -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index dcc5c118..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "/listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index e3581bd5..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String MAPPER_SUFFIX="Mapper"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加swagger注解信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-test/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-test/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-test/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-test/src/main/resources/application.yml b/mall-tiny-test/src/main/resources/application.yml deleted file mode 100644 index e0cf2fac..00000000 --- a/mall-tiny-test/src/main/resources/application.yml +++ /dev/null @@ -1,21 +0,0 @@ -server: - port: 8080 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - mvc: - pathmatch: - matching-strategy: ANT_PATH_MATCHER - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -springfox: - documentation: - enabled: true - diff --git a/mall-tiny-test/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-test/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-test/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-test/src/main/resources/generator.properties b/mall-tiny-test/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-test/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-test/src/main/resources/generatorConfig.xml b/mall-tiny-test/src/main/resources/generatorConfig.xml deleted file mode 100644 index 8a2c2614..00000000 --- a/mall-tiny-test/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index 0cbfa091..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.macro.mall.tiny; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/ControllerTest.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/ControllerTest.java deleted file mode 100644 index 3f9e3190..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/ControllerTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.action; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.result.MockMvcResultHandlers; -import org.springframework.test.web.servlet.result.MockMvcResultMatchers; - -/** - * Controller层方法测试 - * Created by macro on 2022/10/11. - */ -@SpringBootTest -@AutoConfigureMockMvc -public class ControllerTest { - - @Autowired - private MockMvc mockMvc; - - @Test - void mvcTest() throws Exception{ - //模拟发送一个请求访问分页查询品牌列表的接口 - mockMvc.perform(MockMvcRequestBuilders.get("/brand/list") //设置请求地址 - .param("pageNum","1") //设置请求参数 - .param("pageSize","5")) - .andExpect(MockMvcResultMatchers.status().isOk()) //断言返回状态码为200 - .andDo(MockMvcResultHandlers.print()) //在控制台打印日志 - .andReturn(); //返回请求结果 - } -} diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/MapperTest.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/MapperTest.java deleted file mode 100644 index 626bf7ac..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/MapperTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.macro.mall.tiny.action; - -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * Dao层方法测试 - * Created by macro on 2022/10/11. - */ -@SpringBootTest -public class MapperTest { - - private static final Logger LOGGER = LoggerFactory.getLogger(MapperTest.class); - - @Autowired - private PmsBrandMapper brandMapper; - - @Test - void testGetById(){ - long id = 6; - PmsBrand pmsBrand = brandMapper.selectByPrimaryKey(id); - LOGGER.info("brand name:{}",pmsBrand.getName()); - Assertions.assertEquals("小米",pmsBrand.getName()); - } -} diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/ServiceTest.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/ServiceTest.java deleted file mode 100644 index 72ca28f7..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/action/ServiceTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.action; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * Service层方法测试 - * Created by macro on 2022/10/11. - */ -@SpringBootTest -public class ServiceTest { - private static final Logger LOGGER = LoggerFactory.getLogger(ServiceTest.class); - @Autowired - private PmsBrandService brandService; - - @Test - void testGetById(){ - long id = 6; - PmsBrand pmsBrand = brandService.getBrand(id); - LOGGER.info("brand name:{}",pmsBrand.getName()); - Assertions.assertEquals("小米",pmsBrand.getName()); - } -} diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/AssertTest.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/AssertTest.java deleted file mode 100644 index 51bdd1d2..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/AssertTest.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.macro.mall.tiny.test; - -import cn.hutool.core.thread.ThreadUtil; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.test.context.junit.jupiter.SpringExtension; - -import java.time.Duration; - -/** - * JUnit断言测试 - * Created by macro on 2022/10/11. - */ -@ExtendWith(SpringExtension.class) -public class AssertTest { - - private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleTest.class); - - @Test - void failTest() { - Assertions.fail("failTest():方法执行失败"); - } - - @Test - void trueTest(){ - Assertions.assertTrue(1==1); - } - - @Test - void trueFalse(){ - Assertions.assertFalse(3<=2); - } - - @Test - void nullTest(){ - String str = null; - Assertions.assertNull(str); - } - - @Test - void notNullTest(){ - String str = "test"; - Assertions.assertNotNull(str); - } - - @Test - void equalsTest(){ - String str1 = "test"; - String str2 = "test"; - Assertions.assertEquals(str1,str2); - } - - @Test - void notEqualsTest(){ - String str1 = "test"; - String str2 = "test"; - Assertions.assertNotEquals(str1,str2); - } - - @Test - void throwsTest(){ - Assertions.assertThrows(NullPointerException.class,()->{ - String str = null; - LOGGER.info(str.toLowerCase()); - }); - } - - @Test - void timeoutTest(){ - Assertions.assertTimeout(Duration.ofMillis(1000),()->{ - long sleepTime = 2000; - ThreadUtil.sleep(sleepTime); - LOGGER.info("timeoutTest():休眠{}毫秒",sleepTime); - }); - } - - @Test - void assertAllTest(){ - Assertions.assertAll(()->{ - trueTest(); - },()->{ - nullTest(); - },()->{ - equalsTest(); - }); - } - -} diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/FirstTest.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/FirstTest.java deleted file mode 100644 index 16c279b8..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/FirstTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.macro.mall.tiny.test; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * JUnit基本测试 - * Created by macro on 2022/10/11. - */ -@SpringBootTest -public class FirstTest { - @Test - public void test() { - int a=1; - Assertions.assertEquals(1,a); - } -} diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/LifecycleTest.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/LifecycleTest.java deleted file mode 100644 index 99ccd326..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/LifecycleTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.macro.mall.tiny.test; - -import org.junit.jupiter.api.*; -import org.junit.jupiter.api.extension.ExtendWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.test.context.junit.jupiter.SpringExtension; - -/** - * JUnit生命周期测试 - * Created by macro on 2022/10/10. - */ -@ExtendWith(SpringExtension.class) -public class LifecycleTest { - - private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleTest.class); - - @BeforeAll - static void allInit(){ - LOGGER.info("allInit():在所有方法前执行,只执行一次"); - } - - @BeforeEach - void eachInit(){ - LOGGER.info("eachInit():在测试方法前执行,每个测试方法前都执行"); - } - - @Test - void successTest() { - LOGGER.info("successTest():方法执行成功"); - } - - @AfterEach - void eachDown(){ - LOGGER.info("eachDown():在测试方法后执行,每个测试方法后都执行"); - } - - @AfterAll - static void allDown(){ - LOGGER.info("allDown():在测试方法后执行,每个测试方法后都执行"); - } - -} diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/MethodOrderTest.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/MethodOrderTest.java deleted file mode 100644 index 0388c57b..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/MethodOrderTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.test; - -import org.junit.jupiter.api.*; -import org.junit.jupiter.api.extension.ExtendWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.test.context.junit.jupiter.SpringExtension; - - -/** - * JUnit指定方法测试顺序 - * Created by macro on 2022/10/10. - */ -@ExtendWith(SpringExtension.class) -@TestMethodOrder(MethodOrderer.OrderAnnotation.class) -public class MethodOrderTest { - - private static final Logger LOGGER = LoggerFactory.getLogger(MethodOrderTest.class); - - @Test - @Order(1) - @DisplayName("order为1的方法") - void lowOrder(){ - LOGGER.info("lowOrder method"); - } - - @Test - @Order(10) - @DisplayName("order为10的方法") - void highOrder(){ - LOGGER.info("highOrder method"); - } -} diff --git a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/OtherTest.java b/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/OtherTest.java deleted file mode 100644 index 5dbbacc3..00000000 --- a/mall-tiny-test/src/test/java/com/macro/mall/tiny/test/OtherTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.test; - -import org.junit.jupiter.api.*; -import org.junit.jupiter.api.extension.ExtendWith; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.test.context.junit.jupiter.SpringExtension; - -/** - * JUnit其他测试 - * Created by macro on 2022/10/10. - */ -@ExtendWith(SpringExtension.class) -public class OtherTest { - - private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleTest.class); - private static int count = 0; - - @Test - @Disabled("用于测试@Disabled注解") - void disabledTest() { - LOGGER.info("disabledTest():方法被执行"); - } - - @RepeatedTest(3) - void repeatedTest() { - count++; - LOGGER.info("repeatedTest():重复执行第{}次",count); - } - - @ParameterizedTest - @ValueSource(ints = {1,2,3}) - public void parameterizedTest(int a){ - LOGGER.info("parameterizedTest():a={}",a); - } -} diff --git a/mall-tiny-torna/.gitignore b/mall-tiny-torna/.gitignore deleted file mode 100644 index 153c9335..00000000 --- a/mall-tiny-torna/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -HELP.md -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -/build/ - -### VS Code ### -.vscode/ diff --git a/mall-tiny-torna/pom.xml b/mall-tiny-torna/pom.xml deleted file mode 100644 index 13b815f3..00000000 --- a/mall-tiny-torna/pom.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - 4.0.0 - com.macro.mall - mall-tiny-torna - 1.0-SNAPSHOT - mall-tiny-torna - Demo project for Spring Boot - - - UTF-8 - UTF-8 - 1.8 - true - - - - org.springframework.boot - spring-boot-starter-parent - 2.2.0.RELEASE - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-aop - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.2.10 - - - - com.alibaba - druid-spring-boot-starter - 1.1.10 - - - - org.mybatis.generator - mybatis-generator-core - 1.3.3 - - - - mysql - mysql-connector-java - 8.0.15 - - - - org.projectlombok - lombok - true - - - - org.springframework.boot - spring-boot-starter-security - - - - cn.hutool - hutool-all - 4.5.7 - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - - io.springfox - springfox-boot-starter - 3.0.0 - - - - cn.torna - swagger-plugin - 1.2.6 - test - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/MallTinyApplication.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/MallTinyApplication.java deleted file mode 100644 index 80f20db5..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/MallTinyApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MallTinyApplication { - - public static void main(String[] args) { - SpringApplication.run(MallTinyApplication.class, args); - } - -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java deleted file mode 100644 index eb6c7bd9..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.macro.mall.tiny.common.api; - -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * 分页数据封装类 - * Created by macro on 2019/4/19. - */ -public class CommonPage { - private Integer pageNum; - private Integer pageSize; - private Integer totalPage; - private Long total; - private List list; - - /** - * 将PageHelper分页后的list转为分页信息 - */ - public static CommonPage restPage(List list) { - CommonPage result = new CommonPage(); - PageInfo pageInfo = new PageInfo(list); - result.setTotalPage(pageInfo.getPages()); - result.setPageNum(pageInfo.getPageNum()); - result.setPageSize(pageInfo.getPageSize()); - result.setTotal(pageInfo.getTotal()); - result.setList(pageInfo.getList()); - return result; - } - - public Integer getPageNum() { - return pageNum; - } - - public void setPageNum(Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize() { - return pageSize; - } - - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; - } - - public Integer getTotalPage() { - return totalPage; - } - - public void setTotalPage(Integer totalPage) { - this.totalPage = totalPage; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - public Long getTotal() { - return total; - } - - public void setTotal(Long total) { - this.total = total; - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java deleted file mode 100644 index f1d580d5..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 通用返回对象 - * Created by macro on 2019/4/19. - */ -public class CommonResult { - private long code; - private String message; - private T data; - - protected CommonResult() { - } - - protected CommonResult(long code, String message, T data) { - this.code = code; - this.message = message; - this.data = data; - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - */ - public static CommonResult success(T data) { - return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); - } - - /** - * 成功返回结果 - * - * @param data 获取的数据 - * @param message 提示信息 - */ - public static CommonResult success(T data, String message) { - return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); - } - - /** - * 失败返回结果 - * @param errorCode 错误码 - */ - public static CommonResult failed(IErrorCode errorCode) { - return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); - } - - /** - * 失败返回结果 - * @param message 提示信息 - */ - public static CommonResult failed(String message) { - return new CommonResult(ResultCode.FAILED.getCode(), message, null); - } - - /** - * 失败返回结果 - */ - public static CommonResult failed() { - return failed(ResultCode.FAILED); - } - - /** - * 参数验证失败返回结果 - */ - public static CommonResult validateFailed() { - return failed(ResultCode.VALIDATE_FAILED); - } - - /** - * 参数验证失败返回结果 - * @param message 提示信息 - */ - public static CommonResult validateFailed(String message) { - return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); - } - - /** - * 未登录返回结果 - */ - public static CommonResult unauthorized(T data) { - return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); - } - - /** - * 未授权返回结果 - */ - public static CommonResult forbidden(T data) { - return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); - } - - public long getCode() { - return code; - } - - public void setCode(long code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java deleted file mode 100644 index cfdf47ed..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 封装API的错误码 - * Created by macro on 2019/4/19. - */ -public interface IErrorCode { - long getCode(); - - String getMessage(); -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java deleted file mode 100644 index 2e9368dd..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.macro.mall.tiny.common.api; - -/** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. - */ -public enum ResultCode implements IErrorCode { - SUCCESS(200, "操作成功"), - FAILED(500, "操作失败"), - VALIDATE_FAILED(404, "参数检验失败"), - UNAUTHORIZED(401, "暂未登录或token已经过期"), - FORBIDDEN(403, "没有相关权限"); - private long code; - private String message; - - private ResultCode(long code, String message) { - this.code = code; - this.message = message; - } - - public long getCode() { - return code; - } - - public String getMessage() { - return message; - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java deleted file mode 100644 index 5ec26f6c..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.common.utils; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -/** - * JwtToken生成的工具类 - * JWT token的格式:header.payload.signature - * header的格式(算法、token的类型): - * {"alg": "HS512","typ": "JWT"} - * payload的格式(用户名、创建时间、生成时间): - * {"sub":"wang","created":1489079981393,"exp":1489684781} - * signature的生成算法: - * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. - */ -@Component -public class JwtTokenUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); - private static final String CLAIM_KEY_USERNAME = "sub"; - private static final String CLAIM_KEY_CREATED = "created"; - @Value("${jwt.secret}") - private String secret; - @Value("${jwt.expiration}") - private Long expiration; - - /** - * 根据负责生成JWT的token - */ - private String generateToken(Map claims) { - return Jwts.builder() - .setClaims(claims) - .setExpiration(generateExpirationDate()) - .signWith(SignatureAlgorithm.HS512, secret) - .compact(); - } - - /** - * 从token中获取JWT中的负载 - */ - private Claims getClaimsFromToken(String token) { - Claims claims = null; - try { - claims = Jwts.parser() - .setSigningKey(secret) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - LOGGER.info("JWT格式验证失败:{}",token); - } - return claims; - } - - /** - * 生成token的过期时间 - */ - private Date generateExpirationDate() { - return new Date(System.currentTimeMillis() + expiration * 1000); - } - - /** - * 从token中获取登录用户名 - */ - public String getUserNameFromToken(String token) { - String username; - try { - Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - } - return username; - } - - /** - * 验证token是否还有效 - * - * @param token 客户端传入的token - * @param userDetails 从数据库中查询出来的用户信息 - */ - public boolean validateToken(String token, UserDetails userDetails) { - String username = getUserNameFromToken(token); - return username.equals(userDetails.getUsername()) && !isTokenExpired(token); - } - - /** - * 判断token是否已经失效 - */ - private boolean isTokenExpired(String token) { - Date expiredDate = getExpiredDateFromToken(token); - return expiredDate.before(new Date()); - } - - /** - * 从token中获取过期时间 - */ - private Date getExpiredDateFromToken(String token) { - Claims claims = getClaimsFromToken(token); - return claims.getExpiration(); - } - - /** - * 根据用户信息生成token - */ - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } - - /** - * 判断token是否可以被刷新 - */ - public boolean canRefresh(String token) { - return !isTokenExpired(token); - } - - /** - * 刷新token - */ - public String refreshToken(String token) { - Claims claims = getClaimsFromToken(token); - claims.put(CLAIM_KEY_CREATED, new Date()); - return generateToken(claims); - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java deleted file mode 100644 index abdb7b71..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.macro.mall.tiny.component; - -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. - */ -public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); - @Autowired - private UserDetailsService userDetailsService; - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, - FilterChain chain) throws ServletException, IOException { - String authHeader = request.getHeader(this.tokenHeader); - if (authHeader != null && authHeader.startsWith(this.tokenHead)) { - String authToken = authHeader.substring(this.tokenHead.length());// The part after "Bearer " - String username = jwtTokenUtil.getUserNameFromToken(authToken); - LOGGER.info("checking username:{}", username); - if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { - UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); - if (jwtTokenUtil.validateToken(authToken, userDetails)) { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - LOGGER.info("authenticated user:{}", username); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - } - } - chain.doFilter(request, response); - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java deleted file mode 100644 index 757df36c..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.AuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. - */ -@Component -public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.unauthorized(authException.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java deleted file mode 100644 index bc201cce..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.common.api.CommonResult; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.web.access.AccessDeniedHandler; -import org.springframework.stereotype.Component; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. - */ -@Component -public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ - @Override - public void handle(HttpServletRequest request, - HttpServletResponse response, - AccessDeniedException e) throws IOException, ServletException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json"); - response.getWriter().println(JSONUtil.parse(CommonResult.forbidden(e.getMessage()))); - response.getWriter().flush(); - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java deleted file mode 100644 index e680ce8a..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Configuration; - -/** - * MyBatis配置类 - * Created by macro on 2019/4/8. - */ -@Configuration -@MapperScan("com.macro.mall.tiny.mbg.mapper") -public class MyBatisConfig { -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java deleted file mode 100644 index ddb793de..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; -import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; -import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - - -/** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. - */ -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; - @Autowired - private RestfulAccessDeniedHandler restfulAccessDeniedHandler; - @Autowired - private RestAuthenticationEntryPoint restAuthenticationEntryPoint; - - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { - httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf - .disable() - .sessionManagement()// 基于token,所以不需要session - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .and() - .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/swagger-ui/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**" - ) - .permitAll() - .antMatchers("/admin/login")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() - .anyRequest()// 除上面外的所有请求全部需要鉴权认证 - .authenticated(); - // 禁用缓存 - httpSecurity.headers().cacheControl(); - // 添加JWT filter - httpSecurity.addFilterBefore(jwtAuthenticationTokenFilter(), UsernamePasswordAuthenticationFilter.class); - //添加自定义未授权和未登录结果返回 - httpSecurity.exceptionHandling() - .accessDeniedHandler(restfulAccessDeniedHandler) - .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); - } - - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } - - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - AdminUserDetails admin = adminService.getAdminByUsername(username); - if (admin != null) { - return admin; - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - - @Bean - public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter() { - return new JwtAuthenticationTokenFilter(); - } - - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java deleted file mode 100644 index 0115ca4f..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.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.*; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spi.service.contexts.SecurityContext; -import springfox.documentation.spring.web.plugins.Docket; - -import java.util.ArrayList; -import java.util.List; - -/** - * Swagger2API文档的配置 - */ -@Configuration -public class Swagger2Config { - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) - .paths(PathSelectors.any()) - .build() - //添加登录认证 - .securitySchemes(securitySchemes()) - .securityContexts(securityContexts()); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("SwaggerUI演示") - .description("mall-tiny") - .contact(new Contact("macro", null, null)) - .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("/brand/.*")); - 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-tiny-torna/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java deleted file mode 100644 index 66508034..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonPage; -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.service.PmsBrandService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - - -/** - * 品牌管理Controller - * Created by macro on 2019/4/19. - */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") -@Controller -@RequestMapping("/brand") -public class PmsBrandController { - @Autowired - private PmsBrandService brandService; - - private static final Logger LOGGER = LoggerFactory.getLogger(PmsBrandController.class); - - @ApiOperation("获取所有品牌列表") - @RequestMapping(value = "listAll", method = RequestMethod.GET) - @ResponseBody - public CommonResult> getBrandList() { - return CommonResult.success(brandService.listAllBrand()); - } - - @ApiOperation("添加品牌") - @RequestMapping(value = "/create", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { - CommonResult commonResult; - int count = brandService.createBrand(pmsBrand); - if (count == 1) { - commonResult = CommonResult.success(pmsBrand); - LOGGER.debug("createBrand success:{}", pmsBrand); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("createBrand failed:{}", pmsBrand); - } - return commonResult; - } - - @ApiOperation("更新指定id品牌信息") - @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { - CommonResult commonResult; - int count = brandService.updateBrand(id, pmsBrandDto); - if (count == 1) { - commonResult = CommonResult.success(pmsBrandDto); - LOGGER.debug("updateBrand success:{}", pmsBrandDto); - } else { - commonResult = CommonResult.failed("操作失败"); - LOGGER.debug("updateBrand failed:{}", pmsBrandDto); - } - return commonResult; - } - - @ApiOperation("删除指定id的品牌") - @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult deleteBrand(@PathVariable("id") Long id) { - int count = brandService.deleteBrand(id); - if (count == 1) { - LOGGER.debug("deleteBrand success :id={}", id); - return CommonResult.success(null); - } else { - LOGGER.debug("deleteBrand failed :id={}", id); - return CommonResult.failed("操作失败"); - } - } - - @ApiOperation("分页查询品牌列表") - @RequestMapping(value = "/list", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") - @ApiParam("页码") Integer pageNum, - @RequestParam(value = "pageSize", defaultValue = "3") - @ApiParam("每页数量") Integer pageSize) { - List brandList = brandService.listBrand(pageNum, pageSize); - return CommonResult.success(CommonPage.restPage(brandList)); - } - - @ApiOperation("获取指定id的品牌详情") - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - @PreAuthorize("hasRole('ADMIN')") - public CommonResult brand(@PathVariable("id") Long id) { - return CommonResult.success(brandService.getBrand(id)); - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java deleted file mode 100644 index 27e9d37d..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.macro.mall.tiny.controller; - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.service.UmsAdminService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.util.HashMap; -import java.util.Map; - -/** - * 后台用户管理 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") -@RequestMapping("/admin") -public class UmsAdminController { - @Autowired - private UmsAdminService adminService; - @Value("${jwt.tokenHeader}") - private String tokenHeader; - @Value("${jwt.tokenHead}") - private String tokenHead; - - - @ApiOperation(value = "登录以后返回token") - @RequestMapping(value = "/login", method = RequestMethod.POST) - @ResponseBody - public CommonResult login(@RequestParam String username, @RequestParam String password) { - String token = adminService.login(username, password); - if (token == null) { - return CommonResult.validateFailed("用户名或密码错误"); - } - Map tokenMap = new HashMap<>(); - tokenMap.put("token", token); - tokenMap.put("tokenHead", tokenHead); - return CommonResult.success(tokenMap); - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java deleted file mode 100644 index 3152ef66..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.macro.mall.tiny.domain; - -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Builder -public class AdminUserDetails implements UserDetails { - private String username; - private String password; - private List authorityList; - @Override - public Collection getAuthorities() { - return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return this.password; - } - - @Override - public String getUsername() { - return this.username; - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java deleted file mode 100644 index 162458af..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.IntrospectedColumn; -import org.mybatis.generator.api.IntrospectedTable; -import org.mybatis.generator.api.dom.java.CompilationUnit; -import org.mybatis.generator.api.dom.java.Field; -import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; -import org.mybatis.generator.internal.DefaultCommentGenerator; -import org.mybatis.generator.internal.util.StringUtility; - -import java.util.Properties; - -/** - * 自定义注释生成器 - * Created by macro on 2018/4/26. - */ -public class CommentGenerator extends DefaultCommentGenerator { - private boolean addRemarkComments = false; - private static final String EXAMPLE_SUFFIX="Example"; - private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; - - /** - * 设置用户配置的参数 - */ - @Override - public void addConfigurationProperties(Properties properties) { - super.addConfigurationProperties(properties); - this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); - } - - /** - * 给字段添加注释 - */ - @Override - public void addFieldComment(Field field, IntrospectedTable introspectedTable, - IntrospectedColumn introspectedColumn) { - String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 - if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ -// addFieldJavaDoc(field, remarks); - //数据库中特殊字符需要转义 - if(remarks.contains("\"")){ - remarks = remarks.replace("\"","'"); - } - //给model的字段添加swagger注解 - field.addJavaDocLine("@ApiModelProperty(value = \""+remarks+"\")"); - } - } - - /** - * 给model的字段添加注释 - */ - private void addFieldJavaDoc(Field field, String remarks) { - //文档注释开始 - field.addJavaDocLine("/**"); - //获取数据库字段的备注信息 - String[] remarkLines = remarks.split(System.getProperty("line.separator")); - for(String remarkLine:remarkLines){ - field.addJavaDocLine(" * "+remarkLine); - } - addJavadocTag(field, false); - field.addJavaDocLine(" */"); - } - - @Override - public void addJavaFileComment(CompilationUnit compilationUnit) { - super.addJavaFileComment(compilationUnit); - //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ - compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); - } - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/Generator.java deleted file mode 100644 index f7851362..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.macro.mall.tiny.mbg; - -import org.mybatis.generator.api.MyBatisGenerator; -import org.mybatis.generator.config.Configuration; -import org.mybatis.generator.config.xml.ConfigurationParser; -import org.mybatis.generator.internal.DefaultShellCallback; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. - */ -public class Generator { - public static void main(String[] args) throws Exception { - //MBG 执行过程中的警告信息 - List warnings = new ArrayList(); - //当生成的代码重复时,覆盖原代码 - boolean overwrite = true; - //读取我们的 MBG 配置文件 - InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml"); - ConfigurationParser cp = new ConfigurationParser(warnings); - Configuration config = cp.parseConfiguration(is); - is.close(); - - DefaultShellCallback callback = new DefaultShellCallback(overwrite); - //创建 MBG - MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); - //执行生成代码 - myBatisGenerator.generate(null); - //输出警告信息 - for (String warning : warnings) { - System.out.println(warning); - } - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java deleted file mode 100644 index 617584fb..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsBrandMapper { - int countByExample(PmsBrandExample example); - - int deleteByExample(PmsBrandExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsBrand record); - - int insertSelective(PmsBrand record); - - List selectByExampleWithBLOBs(PmsBrandExample example); - - List selectByExample(PmsBrandExample example); - - PmsBrand selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); - - int updateByPrimaryKeySelective(PmsBrand record); - - int updateByPrimaryKeyWithBLOBs(PmsBrand record); - - int updateByPrimaryKey(PmsBrand record); -} \ No newline at end of file diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java deleted file mode 100644 index 0d5dde95..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrand.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsBrand implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "首字母") - private String firstLetter; - - private Integer sort; - - @ApiModelProperty(value = "是否为品牌制造商:0->不是;1->是") - private Integer factoryStatus; - - private Integer showStatus; - - @ApiModelProperty(value = "产品数量") - private Integer productCount; - - @ApiModelProperty(value = "产品评论数量") - private Integer productCommentCount; - - @ApiModelProperty(value = "品牌logo") - private String logo; - - @ApiModelProperty(value = "专区大图") - private String bigPic; - - @ApiModelProperty(value = "品牌故事") - private String brandStory; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFirstLetter() { - return firstLetter; - } - - public void setFirstLetter(String firstLetter) { - this.firstLetter = firstLetter; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFactoryStatus() { - return factoryStatus; - } - - public void setFactoryStatus(Integer factoryStatus) { - this.factoryStatus = factoryStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public Integer getProductCommentCount() { - return productCommentCount; - } - - public void setProductCommentCount(Integer productCommentCount) { - this.productCommentCount = productCommentCount; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getBigPic() { - return bigPic; - } - - public void setBigPic(String bigPic) { - this.bigPic = bigPic; - } - - public String getBrandStory() { - return brandStory; - } - - public void setBrandStory(String brandStory) { - this.brandStory = brandStory; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", firstLetter=").append(firstLetter); - sb.append(", sort=").append(sort); - sb.append(", factoryStatus=").append(factoryStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", productCount=").append(productCount); - sb.append(", productCommentCount=").append(productCommentCount); - sb.append(", logo=").append(logo); - sb.append(", bigPic=").append(bigPic); - sb.append(", brandStory=").append(brandStory); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java deleted file mode 100644 index 4e4a1108..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ /dev/null @@ -1,840 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsBrandExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsBrandExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNull() { - addCriterion("first_letter is null"); - return (Criteria) this; - } - - public Criteria andFirstLetterIsNotNull() { - addCriterion("first_letter is not null"); - return (Criteria) this; - } - - public Criteria andFirstLetterEqualTo(String value) { - addCriterion("first_letter =", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotEqualTo(String value) { - addCriterion("first_letter <>", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThan(String value) { - addCriterion("first_letter >", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterGreaterThanOrEqualTo(String value) { - addCriterion("first_letter >=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThan(String value) { - addCriterion("first_letter <", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLessThanOrEqualTo(String value) { - addCriterion("first_letter <=", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterLike(String value) { - addCriterion("first_letter like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotLike(String value) { - addCriterion("first_letter not like", value, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterIn(List values) { - addCriterion("first_letter in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotIn(List values) { - addCriterion("first_letter not in", values, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterBetween(String value1, String value2) { - addCriterion("first_letter between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andFirstLetterNotBetween(String value1, String value2) { - addCriterion("first_letter not between", value1, value2, "firstLetter"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNull() { - addCriterion("factory_status is null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIsNotNull() { - addCriterion("factory_status is not null"); - return (Criteria) this; - } - - public Criteria andFactoryStatusEqualTo(Integer value) { - addCriterion("factory_status =", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotEqualTo(Integer value) { - addCriterion("factory_status <>", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThan(Integer value) { - addCriterion("factory_status >", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("factory_status >=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThan(Integer value) { - addCriterion("factory_status <", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) { - addCriterion("factory_status <=", value, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusIn(List values) { - addCriterion("factory_status in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotIn(List values) { - addCriterion("factory_status not in", values, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusBetween(Integer value1, Integer value2) { - addCriterion("factory_status between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) { - addCriterion("factory_status not between", value1, value2, "factoryStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNull() { - addCriterion("product_comment_count is null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIsNotNull() { - addCriterion("product_comment_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCommentCountEqualTo(Integer value) { - addCriterion("product_comment_count =", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotEqualTo(Integer value) { - addCriterion("product_comment_count <>", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThan(Integer value) { - addCriterion("product_comment_count >", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_comment_count >=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThan(Integer value) { - addCriterion("product_comment_count <", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) { - addCriterion("product_comment_count <=", value, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountIn(List values) { - addCriterion("product_comment_count in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotIn(List values) { - addCriterion("product_comment_count not in", values, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_comment_count not between", value1, value2, "productCommentCount"); - return (Criteria) this; - } - - public Criteria andLogoIsNull() { - addCriterion("logo is null"); - return (Criteria) this; - } - - public Criteria andLogoIsNotNull() { - addCriterion("logo is not null"); - return (Criteria) this; - } - - public Criteria andLogoEqualTo(String value) { - addCriterion("logo =", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotEqualTo(String value) { - addCriterion("logo <>", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThan(String value) { - addCriterion("logo >", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoGreaterThanOrEqualTo(String value) { - addCriterion("logo >=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThan(String value) { - addCriterion("logo <", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLessThanOrEqualTo(String value) { - addCriterion("logo <=", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoLike(String value) { - addCriterion("logo like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotLike(String value) { - addCriterion("logo not like", value, "logo"); - return (Criteria) this; - } - - public Criteria andLogoIn(List values) { - addCriterion("logo in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotIn(List values) { - addCriterion("logo not in", values, "logo"); - return (Criteria) this; - } - - public Criteria andLogoBetween(String value1, String value2) { - addCriterion("logo between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andLogoNotBetween(String value1, String value2) { - addCriterion("logo not between", value1, value2, "logo"); - return (Criteria) this; - } - - public Criteria andBigPicIsNull() { - addCriterion("big_pic is null"); - return (Criteria) this; - } - - public Criteria andBigPicIsNotNull() { - addCriterion("big_pic is not null"); - return (Criteria) this; - } - - public Criteria andBigPicEqualTo(String value) { - addCriterion("big_pic =", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotEqualTo(String value) { - addCriterion("big_pic <>", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThan(String value) { - addCriterion("big_pic >", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicGreaterThanOrEqualTo(String value) { - addCriterion("big_pic >=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThan(String value) { - addCriterion("big_pic <", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLessThanOrEqualTo(String value) { - addCriterion("big_pic <=", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicLike(String value) { - addCriterion("big_pic like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotLike(String value) { - addCriterion("big_pic not like", value, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicIn(List values) { - addCriterion("big_pic in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotIn(List values) { - addCriterion("big_pic not in", values, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicBetween(String value1, String value2) { - addCriterion("big_pic between", value1, value2, "bigPic"); - return (Criteria) this; - } - - public Criteria andBigPicNotBetween(String value1, String value2) { - addCriterion("big_pic not between", value1, value2, "bigPic"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java deleted file mode 100644 index 7171412b..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.macro.mall.tiny.service; - - -import com.macro.mall.tiny.mbg.model.PmsBrand; - -import java.util.List; - -/** - * PmsBrandService - * Created by macro on 2019/4/19. - */ -public interface PmsBrandService { - List listAllBrand(); - - int createBrand(PmsBrand brand); - - int updateBrand(Long id, PmsBrand brand); - - int deleteBrand(Long id); - - List listBrand(int pageNum, int pageSize); - - PmsBrand getBrand(Long id); -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java deleted file mode 100644 index 6528582e..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.domain.AdminUserDetails; - -/** - * 后台用于管理Service - * Created by macro on 2020/10/15. - */ -public interface UmsAdminService { - /** - * 根据用户名获取用户信息 - */ - AdminUserDetails getAdminByUsername(String username); - - /** - * 用户名密码登录 - */ - String login(String username, String password); -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java deleted file mode 100644 index 2a2b102e..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import com.github.pagehelper.PageHelper; -import com.macro.mall.tiny.mbg.mapper.PmsBrandMapper; -import com.macro.mall.tiny.mbg.model.PmsBrand; -import com.macro.mall.tiny.mbg.model.PmsBrandExample; -import com.macro.mall.tiny.service.PmsBrandService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. - */ -@Service -public class PmsBrandServiceImpl implements PmsBrandService { - @Autowired - private PmsBrandMapper brandMapper; - - @Override - public List listAllBrand() { - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public int createBrand(PmsBrand brand) { - return brandMapper.insertSelective(brand); - } - - @Override - public int updateBrand(Long id, PmsBrand brand) { - brand.setId(id); - return brandMapper.updateByPrimaryKeySelective(brand); - } - - @Override - public int deleteBrand(Long id) { - return brandMapper.deleteByPrimaryKey(id); - } - - @Override - public List listBrand(int pageNum, int pageSize) { - PageHelper.startPage(pageNum, pageSize); - return brandMapper.selectByExample(new PmsBrandExample()); - } - - @Override - public PmsBrand getBrand(Long id) { - return brandMapper.selectByPrimaryKey(id); - } -} diff --git a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java deleted file mode 100644 index 45347be4..00000000 --- a/mall-tiny-torna/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.core.collection.CollUtil; -import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.domain.AdminUserDetails; -import com.macro.mall.tiny.service.UmsAdminService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by macro on 2020/10/15. - */ -@Slf4j -@Service -public class UmsAdminServiceImpl implements UmsAdminService { - /** - * 存放默认用户信息 - */ - private List adminUserDetailsList = new ArrayList<>(); - @Autowired - private JwtTokenUtil jwtTokenUtil; - @Autowired - private PasswordEncoder passwordEncoder; - - @PostConstruct - private void init(){ - adminUserDetailsList.add(AdminUserDetails.builder() - .username("admin") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_ADMIN")) - .build()); - adminUserDetailsList.add(AdminUserDetails.builder() - .username("macro") - .password(passwordEncoder.encode("123456")) - .authorityList(CollUtil.toList("ROLE_USER")) - .build()); - } - @Override - public AdminUserDetails getAdminByUsername(String username) { - List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(findList)){ - return findList.get(0); - } - return null; - } - - @Override - public String login(String username, String password) { - String token = null; - try { - UserDetails userDetails = getAdminByUsername(username); - if(userDetails==null){ - return token; - } - if (!passwordEncoder.matches(password, userDetails.getPassword())) { - throw new BadCredentialsException("密码不正确"); - } - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - token = jwtTokenUtil.generateToken(userDetails); - } catch (AuthenticationException e) { - log.warn("登录异常:{}", e.getMessage()); - } - return token; - } -} diff --git a/mall-tiny-torna/src/main/resources/application.yml b/mall-tiny-torna/src/main/resources/application.yml deleted file mode 100644 index 5a618a77..00000000 --- a/mall-tiny-torna/src/main/resources/application.yml +++ /dev/null @@ -1,24 +0,0 @@ -server: - port: 8088 - -spring: - datasource: - url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: root - password: root - -mybatis: - mapper-locations: - - classpath:mapper/*.xml - - classpath*:com/**/mapper/*.xml - -# 自定义jwt key -jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 - -springfox: - documentation: - enabled: true \ No newline at end of file diff --git a/mall-tiny-torna/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny-torna/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml deleted file mode 100644 index 1842e269..00000000 --- a/mall-tiny-torna/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, - logo, big_pic - - - brand_story - - - - - - delete from pms_brand - where id = #{id,jdbcType=BIGINT} - - - delete from pms_brand - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand (name, first_letter, sort, - factory_status, show_status, product_count, - product_comment_count, logo, big_pic, - brand_story) - values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, - #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, - #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, - #{brandStory,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_brand - - - name, - - - first_letter, - - - sort, - - - factory_status, - - - show_status, - - - product_count, - - - product_comment_count, - - - logo, - - - big_pic, - - - brand_story, - - - - - #{name,jdbcType=VARCHAR}, - - - #{firstLetter,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{factoryStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productCommentCount,jdbcType=INTEGER}, - - - #{logo,jdbcType=VARCHAR}, - - - #{bigPic,jdbcType=VARCHAR}, - - - #{brandStory,jdbcType=LONGVARCHAR}, - - - - - - update pms_brand - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - - - logo = #{record.logo,jdbcType=VARCHAR}, - - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - - - - - - update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - - - - - - update pms_brand - - - name = #{name,jdbcType=VARCHAR}, - - - first_letter = #{firstLetter,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - factory_status = #{factoryStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - - - logo = #{logo,jdbcType=VARCHAR}, - - - big_pic = #{bigPic,jdbcType=VARCHAR}, - - - brand_story = #{brandStory,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR}, - brand_story = #{brandStory,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_brand - set name = #{name,jdbcType=VARCHAR}, - first_letter = #{firstLetter,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - factory_status = #{factoryStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_comment_count = #{productCommentCount,jdbcType=INTEGER}, - logo = #{logo,jdbcType=VARCHAR}, - big_pic = #{bigPic,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-torna/src/main/resources/generator.properties b/mall-tiny-torna/src/main/resources/generator.properties deleted file mode 100644 index 173547bb..00000000 --- a/mall-tiny-torna/src/main/resources/generator.properties +++ /dev/null @@ -1,4 +0,0 @@ -jdbc.driverClass=com.mysql.cj.jdbc.Driver -jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -jdbc.userId=root -jdbc.password=root \ No newline at end of file diff --git a/mall-tiny-torna/src/main/resources/generatorConfig.xml b/mall-tiny-torna/src/main/resources/generatorConfig.xml deleted file mode 100644 index e0852226..00000000 --- a/mall-tiny-torna/src/main/resources/generatorConfig.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
\ No newline at end of file diff --git a/mall-tiny-torna/src/main/resources/torna.json b/mall-tiny-torna/src/main/resources/torna.json deleted file mode 100644 index d98bdb51..00000000 --- a/mall-tiny-torna/src/main/resources/torna.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - // 开启推送 - "enable": true, - // 扫描package,多个用;隔开 - "basePackage": "com.macro.mall.tiny.controller", - // 推送URL,IP端口对应Torna服务器 - "url": "http://localhost:7700/api", - // appKey - "appKey": "20211103905498418195988480", - // secret - "secret": "~#ZS~!*2B3I01vbW0f9iKH,rzj-%Xv^Q", - // 模块token - "token": "74365d40038d4f648ae65a077d956836", - // 调试环境,格式:环境名称,调试路径,多个用"|"隔开 - "debugEnv": "test,http://localhost:8088", - // 推送人 - "author": "macro", - // 打开调试:true/false - "debug": true, - // 是否替换文档,true:替换,false:不替换(追加)。默认:true - "isReplace": true -} \ No newline at end of file diff --git a/mall-tiny-torna/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny-torna/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java deleted file mode 100644 index a705e524..00000000 --- a/mall-tiny-torna/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny; - -import cn.torna.swaggerplugin.SwaggerPlugin; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MallTinyApplicationTests { - - @Test - public void contextLoads() { - } - - @Test - public void pushDoc(){ - // 将文档推送到Torna服务中去,默认查找resources下的torna.json - SwaggerPlugin.pushDoc(); - } - -} diff --git a/mall-tiny/pom.xml b/mall-tiny/pom.xml index 42932c2e..d3f81a1c 100644 --- a/mall-tiny/pom.xml +++ b/mall-tiny/pom.xml @@ -2,22 +2,18 @@ 4.0.0 - com.macro.mall + mall-tiny - 0.0.1-SNAPSHOT + 1.0-SNAPSHOT mall-tiny - mall-tiny project - - - 1.8 - + Demo project for Spring Boot - org.springframework.boot - spring-boot-starter-parent - 2.1.3.RELEASE - + com.macro.mall + mall-learning-teach + 1.0-SNAPSHOT + @@ -41,38 +37,45 @@ com.github.pagehelper pagehelper-spring-boot-starter - 1.2.10 + ${pagehelper-starter.version} com.alibaba druid-spring-boot-starter - 1.1.10 + ${druid.version} org.mybatis.generator mybatis-generator-core - 1.3.7 + ${mybatis-generator.version} mysql mysql-connector-java - 8.0.15 + ${mysql-connector.version} - + - io.springfox - springfox-swagger2 - 2.7.0 + org.projectlombok + lombok + true + + + + cn.hutool + hutool-all + ${hutool.version} + io.springfox - springfox-swagger-ui - 2.7.0 + springfox-boot-starter + ${springfox-swagger.version} - + org.springframework.boot spring-boot-starter-data-redis @@ -82,50 +85,32 @@ org.springframework.boot spring-boot-starter-security - - - cn.hutool - hutool-all - 4.5.7 - io.jsonwebtoken jjwt - 0.9.0 + ${jjwt.version} org.springframework.boot spring-boot-starter-data-elasticsearch - + org.springframework.boot spring-boot-starter-data-mongodb - + org.springframework.boot spring-boot-starter-amqp - - - org.projectlombok - lombok - true - - - - com.aliyun.oss - aliyun-sdk-oss - 2.5.0 - - + - net.logstash.logback - logstash-logback-encoder - 5.3 + io.minio + minio + ${minio.version} @@ -135,34 +120,6 @@ org.springframework.boot spring-boot-maven-plugin
- - com.spotify - docker-maven-plugin - 1.1.0 - - - build-image - package - - build - - - - - mall-tiny/${project.artifactId}:${project.version} - http://192.168.3.101:2375 - java:8 - ["java", "-jar","/${project.build.finalName}.jar"] - - - - / - ${project.build.directory} - ${project.build.finalName}.jar - - - - diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java b/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java index cd91d663..23c5b530 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/CommonPage.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 分页数据封装类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用分页数据封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonPage { private Integer pageNum; diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java b/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java index f1d580d5..8cbf71ed 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/CommonResult.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 通用返回对象 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 通用返回结果封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public class CommonResult { private long code; diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java b/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java index cfdf47ed..5efc3e62 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/IErrorCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 封装API的错误码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description API返回码接口 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface IErrorCode { long getCode(); diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java b/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java index 2e9368dd..8e88220b 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/common/api/ResultCode.java @@ -1,8 +1,10 @@ package com.macro.mall.tiny.common.api; /** - * 枚举了一些常用API操作码 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description API返回码封装类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public enum ResultCode implements IErrorCode { SUCCESS(200, "操作成功"), diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java b/mall-tiny/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java index 5ec26f6c..89e32146 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/common/utils/JwtTokenUtil.java @@ -14,7 +14,8 @@ import java.util.Map; /** - * JwtToken生成的工具类 + * @auther macrozheng + * @description JwtToken生成的工具类 * JWT token的格式:header.payload.signature * header的格式(算法、token的类型): * {"alg": "HS512","typ": "JWT"} @@ -22,7 +23,8 @@ * {"sub":"wang","created":1489079981393,"exp":1489684781} * signature的生成算法: * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) - * Created by macro on 2018/4/26. + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class JwtTokenUtil { @@ -35,7 +37,7 @@ public class JwtTokenUtil { private Long expiration; /** - * 根据负责生成JWT的token + * 根据负载生成JWT的token */ private String generateToken(Map claims) { return Jwts.builder() diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java b/mall-tiny/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java index 7da9e892..79a12264 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/component/CancelOrderReceiver.java @@ -9,8 +9,10 @@ import org.springframework.stereotype.Component; /** - * 取消订单消息的处理者 - * Created by macro on 2018/9/14. + * @auther macrozheng + * @description 取消订单消息的接收者 + * @date 2018/9/14 + * @github https://github.com/macrozheng */ @Component @RabbitListener(queues = "mall.order.cancel") diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java b/mall-tiny/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java index b4c78ea9..6273a06f 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/component/CancelOrderSender.java @@ -11,8 +11,10 @@ import org.springframework.stereotype.Component; /** - * 取消订单消息的发出者 - * Created by macro on 2018/9/14. + * @auther macrozheng + * @description 取消订单消息的发送者 + * @date 2018/9/14 + * @github https://github.com/macrozheng */ @Component public class CancelOrderSender { diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java b/mall-tiny/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java index abdb7b71..65cc9fcb 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/component/JwtAuthenticationTokenFilter.java @@ -19,8 +19,10 @@ import java.io.IOException; /** - * JWT登录授权过滤器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description JWT登录授权过滤器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JwtAuthenticationTokenFilter.class); diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java b/mall-tiny/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java deleted file mode 100644 index 678406da..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/component/OrderTimeOutCancelTask.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.macro.mall.tiny.component; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -/** - * Created by macro on 2018/8/24. - * 订单超时取消并解锁库存的定时器 - */ -@Component -public class OrderTimeOutCancelTask { - private Logger LOGGER = LoggerFactory.getLogger(OrderTimeOutCancelTask.class); - - /** - * cron表达式:Seconds Minutes Hours DayofMonth Month DayofWeek [Year] - * 每10分钟扫描一次,扫描设定超时时间之前下的订单,如果没支付则取消该订单 - */ - @Scheduled(cron = "0 0/10 * ? * ?") - private void cancelTimeOutOrder() { - // TODO: 2019/5/3 此处应调用取消订单的方法,具体查看mall项目源码 - LOGGER.info("取消订单,并根据sku编号释放锁定库存"); - } -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java b/mall-tiny/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java index 757df36c..4671ec4e 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/component/RestAuthenticationEntryPoint.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当未登录或者token失效访问接口时,自定义的返回结果 - * Created by macro on 2018/5/14. + * @auther macrozheng + * @description 自定义未登录或者token失效时的返回结果 + * @date 2018/5/14 + * @github https://github.com/macrozheng */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java b/mall-tiny/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java index bc201cce..0bae0407 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/component/RestfulAccessDeniedHandler.java @@ -12,8 +12,10 @@ import java.io.IOException; /** - * 当访问接口没有权限时,自定义的返回结果 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义无权限访问的返回结果 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler{ diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java b/mall-tiny/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java deleted file mode 100644 index 1e856ad4..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/component/WebLogAspect.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.macro.mall.tiny.component; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.URLUtil; -import cn.hutool.json.JSONUtil; -import com.macro.mall.tiny.dto.WebLog; -import io.swagger.annotations.ApiOperation; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.Signature; -import org.aspectj.lang.annotation.*; -import org.aspectj.lang.reflect.MethodSignature; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 统一日志处理切面 - * Created by macro on 2018/4/26. - */ -@Aspect -@Component -@Order(1) -public class WebLogAspect { - private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class); - - @Pointcut("execution(public * com.macro.mall.tiny.controller.*.*(..))") - public void webLog() { - } - - @Before("webLog()") - public void doBefore(JoinPoint joinPoint) throws Throwable { - } - - @AfterReturning(value = "webLog()", returning = "ret") - public void doAfterReturning(Object ret) throws Throwable { - } - - @Around("webLog()") - public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { - long startTime = System.currentTimeMillis(); - //获取当前请求对象 - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = attributes.getRequest(); - //记录请求信息 - WebLog webLog = new WebLog(); - Object result = joinPoint.proceed(); - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - if (method.isAnnotationPresent(ApiOperation.class)) { - ApiOperation apiOperation = method.getAnnotation(ApiOperation.class); - webLog.setDescription(apiOperation.value()); - } - long endTime = System.currentTimeMillis(); - String urlStr = request.getRequestURL().toString(); - webLog.setBasePath(StrUtil.removeSuffix(urlStr, URLUtil.url(urlStr).getPath())); - webLog.setIp(request.getRemoteUser()); - webLog.setMethod(request.getMethod()); - webLog.setParameter(getParameter(method, joinPoint.getArgs())); - webLog.setResult(result); - webLog.setSpendTime((int) (endTime - startTime)); - webLog.setStartTime(startTime); - webLog.setUri(request.getRequestURI()); - webLog.setUrl(request.getRequestURL().toString()); - LOGGER.info("{}", JSONUtil.parse(webLog)); - return result; - } - - /** - * 根据方法和传入的参数获取请求参数 - */ - private Object getParameter(Method method, Object[] args) { - List argList = new ArrayList<>(); - Parameter[] parameters = method.getParameters(); - for (int i = 0; i < parameters.length; i++) { - //将RequestBody注解修饰的参数作为请求参数 - RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); - if (requestBody != null) { - argList.add(args[i]); - } - //将RequestParam注解修饰的参数作为请求参数 - RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); - if (requestParam != null) { - Map map = new HashMap<>(); - String key = parameters[i].getName(); - if (!StringUtils.isEmpty(requestParam.value())) { - key = requestParam.value(); - } - map.put(key, args[i]); - argList.add(map); - } - } - if (argList.size() == 0) { - return null; - } else if (argList.size() == 1) { - return argList.get(0); - } else { - return argList; - } - } -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java index bd95fddb..5ec8e2a3 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/config/GlobalCorsConfig.java @@ -7,8 +7,10 @@ import org.springframework.web.filter.CorsFilter; /** - * 全局跨域配置 - * Created by macro on 2019/7/27. + * @auther macrozheng + * @description 全局跨域配置 + * @date 2019/7/27 + * @github https://github.com/macrozheng */ @Configuration public class GlobalCorsConfig { @@ -20,7 +22,7 @@ public class GlobalCorsConfig { public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); //允许所有域名进行跨域调用 - config.addAllowedOrigin("*"); + config.addAllowedOriginPattern("*"); //允许跨越发送cookie config.setAllowCredentials(true); //放行全部原始头信息 diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java new file mode 100644 index 00000000..edbae4a7 --- /dev/null +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/config/IgnoreUrlsConfig.java @@ -0,0 +1,25 @@ +package com.macro.mall.tiny.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @auther macrozheng + * @description 白名单资源路径配置 + * @date 2018/11/5 + * @github https://github.com/macrozheng + */ +@Getter +@Setter +@Configuration +@ConfigurationProperties(prefix = "secure.ignored") +public class IgnoreUrlsConfig { + + private List urls = new ArrayList<>(); + +} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java new file mode 100644 index 00000000..44043c99 --- /dev/null +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/config/MallSecurityConfig.java @@ -0,0 +1,34 @@ +package com.macro.mall.tiny.config; + +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.service.UmsAdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +/** + * @auther macrozheng + * @description Mall安全自定义配置,用于配置如何获取用户信息 + * @date 2022/5/20 + * @github https://github.com/macrozheng + */ +@Configuration +public class MallSecurityConfig { + + @Autowired + private UmsAdminService adminService; + + @Bean + public UserDetailsService userDetailsService() { + //获取登录用户信息 + return username -> { + AdminUserDetails admin = adminService.getAdminByUsername(username); + if (admin != null) { + return admin; + } + throw new UsernameNotFoundException("用户名或密码错误"); + }; + } +} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java index f4584332..e7e206b7 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/config/MyBatisConfig.java @@ -2,12 +2,16 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; /** - * MyBatis配置类 - * Created by macro on 2019/4/8. + * @auther macrozheng + * @description MyBatis相关配置 + * @date 2019/4/8 + * @github https://github.com/macrozheng */ @Configuration +@EnableTransactionManagement @MapperScan({"com.macro.mall.tiny.mbg.mapper","com.macro.mall.tiny.dao"}) public class MyBatisConfig { } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/OssConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/OssConfig.java deleted file mode 100644 index 0bee6bd4..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/config/OssConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.macro.mall.tiny.config; - -import com.aliyun.oss.OSSClient; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * Created by macro on 2018/5/17. - */ -@Configuration -public class OssConfig { - @Value("${aliyun.oss.endpoint}") - private String ALIYUN_OSS_ENDPOINT; - @Value("${aliyun.oss.accessKeyId}") - private String ALIYUN_OSS_ACCESSKEYID; - @Value("${aliyun.oss.accessKeySecret}") - private String ALIYUN_OSS_ACCESSKEYSECRET; - @Bean - public OSSClient ossClient(){ - return new OSSClient(ALIYUN_OSS_ENDPOINT,ALIYUN_OSS_ACCESSKEYID,ALIYUN_OSS_ACCESSKEYSECRET); - } -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java index 35a98adf..7ca8f4d4 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/config/RabbitMqConfig.java @@ -6,8 +6,10 @@ import org.springframework.context.annotation.Configuration; /** - * 消息队列配置 - * Created by macro on 2018/9/14. + * @auther macrozheng + * @description 消息队列相关配置 + * @date 2018/9/14 + * @github https://github.com/macrozheng */ @Configuration public class RabbitMqConfig { @@ -17,7 +19,7 @@ public class RabbitMqConfig { */ @Bean DirectExchange orderDirect() { - return (DirectExchange) ExchangeBuilder + return ExchangeBuilder .directExchange(QueueEnum.QUEUE_ORDER_CANCEL.getExchange()) .durable(true) .build(); @@ -28,7 +30,7 @@ DirectExchange orderDirect() { */ @Bean DirectExchange orderTtlDirect() { - return (DirectExchange) ExchangeBuilder + return ExchangeBuilder .directExchange(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getExchange()) .durable(true) .build(); diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/RedisConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/RedisConfig.java new file mode 100644 index 00000000..dcf0cb04 --- /dev/null +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/config/RedisConfig.java @@ -0,0 +1,71 @@ +package com.macro.mall.tiny.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 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; + +/** + * @auther macrozheng + * @description Redis相关配置 + * @date 2020/3/2 + * @github https://github.com/macrozheng + */ +@EnableCaching +@Configuration +public class RedisConfig { + + /** + * redis数据库自定义key + */ + public static final String REDIS_KEY_DATABASE="mall"; + + @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); + } + +} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java index 31597c73..e76013ce 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/config/SecurityConfig.java @@ -3,9 +3,7 @@ import com.macro.mall.tiny.component.JwtAuthenticationTokenFilter; import com.macro.mall.tiny.component.RestAuthenticationEntryPoint; import com.macro.mall.tiny.component.RestfulAccessDeniedHandler; -import com.macro.mall.tiny.dto.AdminUserDetails; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; import com.macro.mall.tiny.service.UmsAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -17,57 +15,50 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import java.util.List; - /** - * SpringSecurity的配置 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description SpringSecurity相关配置 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled=true) -public class SecurityConfig extends WebSecurityConfigurerAdapter { - @Autowired - private UmsAdminService adminService; +public class SecurityConfig { @Autowired private RestfulAccessDeniedHandler restfulAccessDeniedHandler; @Autowired private RestAuthenticationEntryPoint restAuthenticationEntryPoint; + @Autowired + private IgnoreUrlsConfig ignoreUrlsConfig; - @Override - protected void configure(HttpSecurity httpSecurity) throws Exception { + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity + .authorizeRequests(); + //不需要保护的资源路径允许访问 + for (String url : ignoreUrlsConfig.getUrls()) { + registry.antMatchers(url).permitAll(); + } + //允许跨域请求的OPTIONS请求 + registry.antMatchers(HttpMethod.OPTIONS) + .permitAll(); httpSecurity.csrf()// 由于使用的是JWT,我们这里不需要csrf .disable() .sessionManagement()// 基于token,所以不需要session .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() - .antMatchers(HttpMethod.GET, // 允许对于网站静态资源的无授权访问 - "/", - "/*.html", - "/favicon.ico", - "/**/*.html", - "/**/*.css", - "/**/*.js", - "/swagger-resources/**", - "/v2/api-docs/**", - "/webjars/springfox-swagger-ui/**" - ) - .permitAll() - .antMatchers(HttpMethod.OPTIONS)//跨域请求会先进行一次options请求 - .permitAll() - .antMatchers("/admin/login", "/admin/register")// 对登录注册要允许匿名访问 - .permitAll() - .antMatchers("/esProduct/**","/member/readHistory/**","/order/**","/aliyun/oss/**","/sso/**")// 测试时放开 - .permitAll() .anyRequest()// 除上面外的所有请求全部需要鉴权认证 .authenticated(); // 禁用缓存 @@ -78,12 +69,7 @@ protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.exceptionHandling() .accessDeniedHandler(restfulAccessDeniedHandler) .authenticationEntryPoint(restAuthenticationEntryPoint); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsService()) - .passwordEncoder(passwordEncoder()); + return httpSecurity.build(); } @Bean @@ -91,28 +77,9 @@ public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } - @Bean - public UserDetailsService userDetailsService() { - //获取登录用户信息 - return username -> { - UmsAdmin admin = adminService.getAdminByUsername(username); - if (admin != null) { - List permissionList = adminService.getPermissionList(admin.getId()); - return new AdminUserDetails(admin,permissionList); - } - throw new UsernameNotFoundException("用户名或密码错误"); - }; - } - @Bean public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){ return new JwtAuthenticationTokenFilter(); } - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java deleted file mode 100644 index 54c5f4f8..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/config/SpringTaskConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.macro.mall.tiny.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.EnableScheduling; - -/** - * 定时任务配置 - * Created by macro on 2019/4/8. - */ -@Configuration -@EnableScheduling -public class SpringTaskConfig { -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java b/mall-tiny/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java index 8946105a..d6b4c567 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/config/Swagger2Config.java @@ -1,34 +1,39 @@ package com.macro.mall.tiny.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; 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 springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * Swagger2API文档的配置 + * @auther macrozheng + * @description Swagger文档的相关配置(带认证) + * @date 2022/11/22 + * @github https://github.com/macrozheng */ @Configuration -@EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() - //为当前包下controller生成API文档 .apis(RequestHandlerSelectors.basePackage("com.macro.mall.tiny.controller")) .paths(PathSelectors.any()) .build() @@ -41,14 +46,14 @@ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("SwaggerUI演示") .description("mall-tiny") - .contact("macro") + .contact(new Contact("macro", null, null)) .version("1.0") .build(); } - private List securitySchemes() { + private List securitySchemes() { //设置请求头信息 - List result = new ArrayList<>(); + List result = new ArrayList<>(); ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); result.add(apiKey); return result; @@ -61,7 +66,7 @@ private List securityContexts() { return result; } - private SecurityContext getContextByPath(String pathRegex){ + private SecurityContext getContextByPath(String pathRegex) { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex(pathRegex)) @@ -76,4 +81,37 @@ private List defaultAuth() { result.add(new SecurityReference("Authorization", authorizationScopes)); return result; } + + @Bean + public BeanPostProcessor generateBeanPostProcessor(){ + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/EsProductController.java b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/EsProductController.java index 5ea0b066..7e318e78 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/EsProductController.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/EsProductController.java @@ -6,6 +6,7 @@ import com.macro.mall.tiny.service.EsProductService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.stereotype.Controller; @@ -14,11 +15,14 @@ import java.util.List; /** - * 搜索商品管理Controller - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品管理Controller + * @date 2018/6/19 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "EsProductController", description = "搜索商品管理") +@Api(tags = "EsProductController") +@Tag(name = "EsProductController", description = "搜索商品管理") @RequestMapping("/esProduct") public class EsProductController { @Autowired @@ -69,5 +73,4 @@ public CommonResult> search(@RequestParam(required = false Page esProductPage = esProductService.search(keyword, pageNum, pageSize); return CommonResult.success(CommonPage.restPage(esProductPage)); } - } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java index 12b060aa..77e6727e 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/MemberReadHistoryController.java @@ -5,6 +5,7 @@ import com.macro.mall.tiny.service.MemberReadHistoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -12,11 +13,14 @@ import java.util.List; /** - * 会员商品浏览记录管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员商品浏览记录管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "MemberReadHistoryController", description = "会员商品浏览记录管理") +@Api(tags = "MemberReadHistoryController") +@Tag(name = "MemberReadHistoryController", description = "会员商品浏览记录管理") @RequestMapping("/member/readHistory") public class MemberReadHistoryController { @Autowired diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/MinioController.java b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/MinioController.java new file mode 100644 index 00000000..225097c6 --- /dev/null +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/MinioController.java @@ -0,0 +1,121 @@ +package com.macro.mall.tiny.controller; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.json.JSONUtil; +import com.macro.mall.tiny.common.api.CommonResult; +import com.macro.mall.tiny.dto.BucketPolicyConfigDto; +import com.macro.mall.tiny.dto.MinioUploadDto; +import io.minio.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @auther macrozheng + * @description MinIO对象存储管理Controller + * @date 2019/12/25 + * @github https://github.com/macrozheng + */ +@Controller +@Api(tags = "MinioController") +@Tag(name = "MinioController", description = "MinIO对象存储管理") +@RequestMapping("/minio") +public class MinioController { + + private static final Logger LOGGER = LoggerFactory.getLogger(MinioController.class); + @Value("${minio.endpoint}") + private String ENDPOINT; + @Value("${minio.bucketName}") + private String BUCKET_NAME; + @Value("${minio.accessKey}") + private String ACCESS_KEY; + @Value("${minio.secretKey}") + private String SECRET_KEY; + + @ApiOperation("文件上传") + @RequestMapping(value = "/upload", method = RequestMethod.POST) + @ResponseBody + public CommonResult upload(@RequestPart("file") MultipartFile file) { + try { + //创建一个MinIO的Java客户端 + MinioClient minioClient =MinioClient.builder() + .endpoint(ENDPOINT) + .credentials(ACCESS_KEY,SECRET_KEY) + .build(); + boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(BUCKET_NAME).build()); + if (isExist) { + LOGGER.info("存储桶已经存在!"); + } else { + //创建存储桶并设置只读权限 + minioClient.makeBucket(MakeBucketArgs.builder().bucket(BUCKET_NAME).build()); + BucketPolicyConfigDto bucketPolicyConfigDto = createBucketPolicyConfigDto(BUCKET_NAME); + SetBucketPolicyArgs setBucketPolicyArgs = SetBucketPolicyArgs.builder() + .bucket(BUCKET_NAME) + .config(JSONUtil.toJsonStr(bucketPolicyConfigDto)) + .build(); + minioClient.setBucketPolicy(setBucketPolicyArgs); + } + String filename = file.getOriginalFilename(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + // 设置存储对象名称 + String objectName = sdf.format(new Date()) + "/" + filename; + // 使用putObject上传一个文件到存储桶中 + PutObjectArgs putObjectArgs = PutObjectArgs.builder() + .bucket(BUCKET_NAME) + .object(objectName) + .contentType(file.getContentType()) + .stream(file.getInputStream(), file.getSize(), ObjectWriteArgs.MIN_MULTIPART_SIZE).build(); + minioClient.putObject(putObjectArgs); + LOGGER.info("文件上传成功!"); + MinioUploadDto minioUploadDto = new MinioUploadDto(); + minioUploadDto.setName(filename); + minioUploadDto.setUrl(ENDPOINT + "/" + BUCKET_NAME + "/" + objectName); + return CommonResult.success(minioUploadDto); + } catch (Exception e) { + e.printStackTrace(); + LOGGER.info("上传发生错误: {}!", e.getMessage()); + } + return CommonResult.failed(); + } + + /** + * 创建存储桶的访问策略,设置为只读权限 + */ + private BucketPolicyConfigDto createBucketPolicyConfigDto(String bucketName) { + BucketPolicyConfigDto.Statement statement = BucketPolicyConfigDto.Statement.builder() + .Effect("Allow") + .Principal("*") + .Action("s3:GetObject") + .Resource("arn:aws:s3:::"+bucketName+"/*.**").build(); + return BucketPolicyConfigDto.builder() + .Version("2012-10-17") + .Statement(CollUtil.toList(statement)) + .build(); + } + + @ApiOperation("文件删除") + @RequestMapping(value = "/delete", method = RequestMethod.POST) + @ResponseBody + public CommonResult delete(@RequestParam("objectName") String objectName) { + try { + MinioClient minioClient = MinioClient.builder() + .endpoint(ENDPOINT) + .credentials(ACCESS_KEY,SECRET_KEY) + .build(); + minioClient.removeObject(RemoveObjectArgs.builder().bucket(BUCKET_NAME).object(objectName).build()); + return CommonResult.success(null); + } catch (Exception e) { + e.printStackTrace(); + } + return CommonResult.failed(); + } +} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java index b7eccf9c..1e08c396 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/OmsPortalOrderController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.OmsPortalOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 订单管理Controller - * Created by macro on 2018/8/30. + * @auther macrozheng + * @description 订单管理Controller + * @date 2018/8/30 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "OmsPortalOrderController", description = "订单管理") +@Api(tags = "OmsPortalOrderController") +@Tag(name = "OmsPortalOrderController", description = "订单管理") @RequestMapping("/order") public class OmsPortalOrderController { @Autowired diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/OssController.java b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/OssController.java deleted file mode 100644 index e75417fe..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/OssController.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.macro.mall.tiny.controller; - - -import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.OssCallbackResult; -import com.macro.mall.tiny.dto.OssPolicyResult; -import com.macro.mall.tiny.service.impl.OssServiceImpl; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -import javax.servlet.http.HttpServletRequest; - -/** - * Oss相关操作接口 - * Created by macro on 2018/4/26. - */ -@Controller -@Api(tags = "OssController", description = "Oss管理") -@RequestMapping("/aliyun/oss") -public class OssController { - @Autowired - private OssServiceImpl ossService; - - @ApiOperation(value = "oss上传签名生成") - @RequestMapping(value = "/policy", method = RequestMethod.GET) - @ResponseBody - public CommonResult policy() { - OssPolicyResult result = ossService.policy(); - return CommonResult.success(result); - } - - @ApiOperation(value = "oss上传成功回调") - @RequestMapping(value = "callback", method = RequestMethod.POST) - @ResponseBody - public CommonResult callback(HttpServletRequest request) { - OssCallbackResult ossCallbackResult = ossService.callback(request); - return CommonResult.success(ossCallbackResult); - } - -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java index 0dee32a4..b75a2598 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/PmsBrandController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import io.swagger.v3.oas.annotations.tags.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +20,14 @@ /** - * 品牌管理Controller - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description 品牌管理Controller + * @date 2019/4/19 + * @github https://github.com/macrozheng */ -@Api(tags = "PmsBrandController", description = "商品品牌管理") @Controller +@Api(tags = "PmsBrandController") +@Tag(name = "PmsBrandController", description = "商品品牌管理") @RequestMapping("/brand") public class PmsBrandController { @Autowired @@ -34,7 +38,7 @@ public class PmsBrandController { @ApiOperation("获取所有品牌列表") @RequestMapping(value = "listAll", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:listAll')") public CommonResult> getBrandList() { return CommonResult.success(brandService.listAllBrand()); } @@ -42,7 +46,7 @@ public CommonResult> getBrandList() { @ApiOperation("添加品牌") @RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:create')") + @PreAuthorize("hasAuthority('brand:create')") public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { CommonResult commonResult; int count = brandService.createBrand(pmsBrand); @@ -59,7 +63,7 @@ public CommonResult createBrand(@RequestBody PmsBrand pmsBrand) { @ApiOperation("更新指定id品牌信息") @RequestMapping(value = "/update/{id}", method = RequestMethod.POST) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:update')") + @PreAuthorize("hasAuthority('brand:update')") public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBrand pmsBrandDto, BindingResult result) { CommonResult commonResult; int count = brandService.updateBrand(id, pmsBrandDto); @@ -76,7 +80,7 @@ public CommonResult updateBrand(@PathVariable("id") Long id, @RequestBody PmsBra @ApiOperation("删除指定id的品牌") @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:delete')") + @PreAuthorize("hasAuthority('brand:delete')") public CommonResult deleteBrand(@PathVariable("id") Long id) { int count = brandService.deleteBrand(id); if (count == 1) { @@ -91,7 +95,7 @@ public CommonResult deleteBrand(@PathVariable("id") Long id) { @ApiOperation("分页查询品牌列表") @RequestMapping(value = "/list", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") + @PreAuthorize("hasAuthority('brand:list')") public CommonResult> listBrand(@RequestParam(value = "pageNum", defaultValue = "1") @ApiParam("页码") Integer pageNum, @RequestParam(value = "pageSize", defaultValue = "3") @@ -103,7 +107,6 @@ public CommonResult> listBrand(@RequestParam(value = "pageN @ApiOperation("获取指定id的品牌详情") @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody - @PreAuthorize("hasAuthority('pms:brand:read')") public CommonResult brand(@PathVariable("id") Long id) { return CommonResult.success(brandService.getBrand(id)); } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java index d95f9683..de2b21fc 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/UmsAdminController.java @@ -1,28 +1,32 @@ package com.macro.mall.tiny.controller; import com.macro.mall.tiny.common.api.CommonResult; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.List; import java.util.Map; /** - * 后台用户管理 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsAdminController", description = "后台用户管理") +@Api(tags = "UmsAdminController") +@Tag(name = "UmsAdminController", description = "后台用户管理") @RequestMapping("/admin") public class UmsAdminController { @Autowired @@ -32,22 +36,12 @@ public class UmsAdminController { @Value("${jwt.tokenHead}") private String tokenHead; - @ApiOperation(value = "用户注册") - @RequestMapping(value = "/register", method = RequestMethod.POST) - @ResponseBody - public CommonResult register(@RequestBody UmsAdmin umsAdminParam, BindingResult result) { - UmsAdmin umsAdmin = adminService.register(umsAdminParam); - if (umsAdmin == null) { - CommonResult.failed(); - } - return CommonResult.success(umsAdmin); - } @ApiOperation(value = "登录以后返回token") @RequestMapping(value = "/login", method = RequestMethod.POST) @ResponseBody - public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, BindingResult result) { - String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword()); + public CommonResult login(@RequestParam String username, @RequestParam String password) { + String token = adminService.login(username, password); if (token == null) { return CommonResult.validateFailed("用户名或密码错误"); } @@ -57,11 +51,11 @@ public CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam, Bi return CommonResult.success(tokenMap); } - @ApiOperation("获取用户所有权限(包括+-权限)") - @RequestMapping(value = "/permission/{adminId}", method = RequestMethod.GET) + @ApiOperation(value = "登录以后返回token") + @RequestMapping(value = "/resourceList", method = RequestMethod.POST) @ResponseBody - public CommonResult> getPermissionList(@PathVariable Long adminId) { - List permissionList = adminService.getPermissionList(adminId); - return CommonResult.success(permissionList); + public CommonResult> resourceList() { + List resourceList = adminService.getResourceList(); + return CommonResult.success(resourceList); } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java index c936c689..5825367b 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/controller/UmsMemberController.java @@ -4,6 +4,7 @@ import com.macro.mall.tiny.service.UmsMemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -12,11 +13,14 @@ import org.springframework.web.bind.annotation.ResponseBody; /** - * 会员登录注册管理Controller - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员登录注册管理Controller + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Controller -@Api(tags = "UmsMemberController", description = "会员登录注册管理") +@Api(tags = "UmsMemberController") +@Tag(name = "UmsMemberController", description = "会员登录注册管理") @RequestMapping("/sso") public class UmsMemberController { @Autowired diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java index 7a9a94e2..d2a58a41 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/dao/EsProductDao.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 搜索系统中的商品管理自定义Dao - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索系统中的商品管理自定义Dao + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductDao { List getAllEsProductList(@Param("id") Long id); diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java deleted file mode 100644 index 50f00f7c..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dao/UmsAdminRoleRelationDao.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.macro.mall.tiny.dao; - - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 后台用户与角色管理自定义Dao - * Created by macro on 2018/10/8. - */ -public interface UmsAdminRoleRelationDao { - - /** - * 获取用户所有权限(包括+-权限) - */ - List getPermissionList(@Param("adminId") Long adminId); -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java b/mall-tiny/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java new file mode 100644 index 00000000..c26f1b96 --- /dev/null +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/domain/AdminUserDetails.java @@ -0,0 +1,61 @@ +package com.macro.mall.tiny.domain; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @auther macrozheng + * @description SpringSecurity用户信息封装类 + * @date 2020/10/15 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Builder +public class AdminUserDetails implements UserDetails { + private String username; + private String password; + private List authorityList; + @Override + public Collection getAuthorities() { + return this.authorityList.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList()); + } + + @Override + public String getPassword() { + return this.password; + } + + @Override + public String getUsername() { + return this.username; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/domain/UmsResource.java b/mall-tiny/src/main/java/com/macro/mall/tiny/domain/UmsResource.java new file mode 100644 index 00000000..baf9890d --- /dev/null +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/domain/UmsResource.java @@ -0,0 +1,42 @@ +package com.macro.mall.tiny.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + *

+ * 后台资源表 + *

+ * + * @author macro + * @since 2020-08-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="UmsResource对象", description="后台资源表") +@Builder +public class UmsResource{ + + private Long id; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "资源名称") + private String name; + + @ApiModelProperty(value = "资源URL") + private String url; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "资源分类ID") + private Long categoryId; + +} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java deleted file mode 100644 index bd712424..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/AdminUserDetails.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.dto; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -/** - * SpringSecurity需要的用户详情 - * Created by macro on 2018/4/26. - */ -public class AdminUserDetails implements UserDetails { - private UmsAdmin umsAdmin; - private List permissionList; - public AdminUserDetails(UmsAdmin umsAdmin, List permissionList) { - this.umsAdmin = umsAdmin; - this.permissionList = permissionList; - } - - @Override - public Collection getAuthorities() { - //返回当前用户的权限 - return permissionList.stream() - .filter(permission -> permission.getValue()!=null) - .map(permission ->new SimpleGrantedAuthority(permission.getValue())) - .collect(Collectors.toList()); - } - - @Override - public String getPassword() { - return umsAdmin.getPassword(); - } - - @Override - public String getUsername() { - return umsAdmin.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return umsAdmin.getStatus().equals(1); - } -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/BucketPolicyConfigDto.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/BucketPolicyConfigDto.java new file mode 100644 index 00000000..e6acf2bd --- /dev/null +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/BucketPolicyConfigDto.java @@ -0,0 +1,33 @@ +package com.macro.mall.tiny.dto; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * @auther macrozheng + * @description Minio Bucket访问策略配置 + * @date 2020/8/11 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode +@Builder +public class BucketPolicyConfigDto { + + private String Version; + private List Statement; + + @Data + @EqualsAndHashCode + @Builder + public static class Statement { + private String Effect; + private String Principal; + private String Action; + private String Resource; + + } +} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java new file mode 100644 index 00000000..eee2d35d --- /dev/null +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/MinioUploadDto.java @@ -0,0 +1,20 @@ +package com.macro.mall.tiny.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @auther macrozheng + * @description 文件上传返回结果 + * @date 2019/12/25 + * @github https://github.com/macrozheng + */ +@Data +@EqualsAndHashCode +public class MinioUploadDto { + @ApiModelProperty("文件访问URL") + private String url; + @ApiModelProperty("文件名称") + private String name; +} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OrderParam.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OrderParam.java index 88fa55c9..2c959ea7 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OrderParam.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OrderParam.java @@ -1,9 +1,14 @@ package com.macro.mall.tiny.dto; +import lombok.Data; + /** - * 生成订单时传入的参数 - * Created by macro on 2018/8/30. + * @auther macrozheng + * @description 生成订单时传入的参数 + * @date 2018/8/30 + * @github https://github.com/macrozheng */ +@Data public class OrderParam { //收货地址id private Long memberReceiveAddressId; @@ -13,36 +18,4 @@ public class OrderParam { private Integer useIntegration; //支付方式 private Integer payType; - - public Long getMemberReceiveAddressId() { - return memberReceiveAddressId; - } - - public void setMemberReceiveAddressId(Long memberReceiveAddressId) { - this.memberReceiveAddressId = memberReceiveAddressId; - } - - public Long getCouponId() { - return couponId; - } - - public void setCouponId(Long couponId) { - this.couponId = couponId; - } - - public Integer getPayType() { - return payType; - } - - public void setPayType(Integer payType) { - this.payType = payType; - } - - public Integer getUseIntegration() { - return useIntegration; - } - - public void setUseIntegration(Integer useIntegration) { - this.useIntegration = useIntegration; - } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssCallbackParam.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssCallbackParam.java deleted file mode 100644 index e8b5a117..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssCallbackParam.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; - -/** - * oss上传成功后的回调参数 - * Created by macro on 2018/5/17. - */ -public class OssCallbackParam { - @ApiModelProperty("请求的回调地址") - private String callbackUrl; - @ApiModelProperty("回调是传入request中的参数") - private String callbackBody; - @ApiModelProperty("回调时传入参数的格式,比如表单提交形式") - private String callbackBodyType; - - public String getCallbackUrl() { - return callbackUrl; - } - - public void setCallbackUrl(String callbackUrl) { - this.callbackUrl = callbackUrl; - } - - public String getCallbackBody() { - return callbackBody; - } - - public void setCallbackBody(String callbackBody) { - this.callbackBody = callbackBody; - } - - public String getCallbackBodyType() { - return callbackBodyType; - } - - public void setCallbackBodyType(String callbackBodyType) { - this.callbackBodyType = callbackBodyType; - } -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssCallbackResult.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssCallbackResult.java deleted file mode 100644 index c03dd90c..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssCallbackResult.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; - -/** - * oss上传文件的回调结果 - * Created by macro on 2018/5/17. - */ -public class OssCallbackResult { - @ApiModelProperty("文件名称") - private String filename; - @ApiModelProperty("文件大小") - private String size; - @ApiModelProperty("文件的mimeType") - private String mimeType; - @ApiModelProperty("图片文件的宽") - private String width; - @ApiModelProperty("图片文件的高") - private String height; - - public String getFilename() { - return filename; - } - - public void setFilename(String filename) { - this.filename = filename; - } - - public String getSize() { - return size; - } - - public void setSize(String size) { - this.size = size; - } - - public String getMimeType() { - return mimeType; - } - - public void setMimeType(String mimeType) { - this.mimeType = mimeType; - } - - public String getWidth() { - return width; - } - - public void setWidth(String width) { - this.width = width; - } - - public String getHeight() { - return height; - } - - public void setHeight(String height) { - this.height = height; - } -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssPolicyResult.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssPolicyResult.java deleted file mode 100644 index e9f081ca..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/OssPolicyResult.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; - -/** - * 获取OSS上传文件授权返回结果 - * Created by macro on 2018/5/17. - */ -public class OssPolicyResult { - @ApiModelProperty("访问身份验证中用到用户标识") - private String accessKeyId; - @ApiModelProperty("用户表单上传的策略,经过base64编码过的字符串") - private String policy; - @ApiModelProperty("对policy签名后的字符串") - private String signature; - @ApiModelProperty("上传文件夹路径前缀") - private String dir; - @ApiModelProperty("oss对外服务的访问域名") - private String host; - @ApiModelProperty("上传成功后的回调设置") - private String callback; - - public String getAccessKeyId() { - return accessKeyId; - } - - public void setAccessKeyId(String accessKeyId) { - this.accessKeyId = accessKeyId; - } - - public String getPolicy() { - return policy; - } - - public void setPolicy(String policy) { - this.policy = policy; - } - - public String getSignature() { - return signature; - } - - public void setSignature(String signature) { - this.signature = signature; - } - - public String getDir() { - return dir; - } - - public void setDir(String dir) { - this.dir = dir; - } - - public String getHost() { - return host; - } - - public void setHost(String host) { - this.host = host; - } - - public String getCallback() { - return callback; - } - - public void setCallback(String callback) { - this.callback = callback; - } -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java index 20ac4683..12df3136 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/QueueEnum.java @@ -3,8 +3,10 @@ import lombok.Getter; /** - * 消息队列枚举配置 - * Created by macro on 2018/9/14. + * @auther macrozheng + * @description 消息队列枚举配置 + * @date 2018/9/14 + * @github https://github.com/macrozheng */ @Getter public enum QueueEnum { @@ -18,7 +20,7 @@ public enum QueueEnum { QUEUE_TTL_ORDER_CANCEL("mall.order.direct.ttl", "mall.order.cancel.ttl", "mall.order.cancel.ttl"); /** - * 交换名称 + * 交换机名称 */ private String exchange; /** diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java deleted file mode 100644 index 94e9396a..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/UmsAdminLoginParam.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.macro.mall.tiny.dto; - -import io.swagger.annotations.ApiModelProperty; -import org.hibernate.validator.constraints.NotEmpty; - -/** - * 用户登录参数 - * Created by macro on 2018/4/26. - */ -public class UmsAdminLoginParam { - @ApiModelProperty(value = "用户名", required = true) - @NotEmpty(message = "用户名不能为空") - private String username; - @ApiModelProperty(value = "密码", required = true) - @NotEmpty(message = "密码不能为空") - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/WebLog.java b/mall-tiny/src/main/java/com/macro/mall/tiny/dto/WebLog.java deleted file mode 100644 index c2fb9f1c..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/dto/WebLog.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.macro.mall.tiny.dto; - -/** - * 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-tiny/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java index 162458af..775879dd 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/CommentGenerator.java @@ -11,12 +11,15 @@ import java.util.Properties; /** - * 自定义注释生成器 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 自定义注释生成器 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class CommentGenerator extends DefaultCommentGenerator { private boolean addRemarkComments = false; private static final String EXAMPLE_SUFFIX="Example"; + private static final String MAPPER_SUFFIX="Mapper"; private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME="io.swagger.annotations.ApiModelProperty"; /** @@ -35,7 +38,7 @@ public void addConfigurationProperties(Properties properties) { public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); - //根据参数和备注信息判断是否添加备注信息 + //根据参数和备注信息判断是否添加swagger注解信息 if(addRemarkComments&&StringUtility.stringHasValue(remarks)){ // addFieldJavaDoc(field, remarks); //数据库中特殊字符需要转义 @@ -66,7 +69,7 @@ private void addFieldJavaDoc(Field field, String remarks) { public void addJavaFileComment(CompilationUnit compilationUnit) { super.addJavaFileComment(compilationUnit); //只在model中添加swagger注解类的导入 - if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ + if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/Generator.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/Generator.java index f7851362..84044645 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/Generator.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/Generator.java @@ -10,8 +10,10 @@ import java.util.List; /** - * 用于生产MBG的代码 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description MBG代码生成工具 + * @date 2018/4/26 + * @github https://github.com/macrozheng */ public class Generator { public static void main(String[] args) throws Exception { diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java index 37d62163..408d4737 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.java @@ -12,9 +12,9 @@ public interface PmsBrandMapper { int deleteByPrimaryKey(Long id); - int insert(PmsBrand record); + int insert(PmsBrand row); - int insertSelective(PmsBrand record); + int insertSelective(PmsBrand row); List selectByExampleWithBLOBs(PmsBrandExample example); @@ -22,15 +22,15 @@ public interface PmsBrandMapper { PmsBrand selectByPrimaryKey(Long id); - int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleSelective(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExampleWithBLOBs(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExampleWithBLOBs(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByExample(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example); + int updateByExample(@Param("row") PmsBrand row, @Param("example") PmsBrandExample example); - int updateByPrimaryKeySelective(PmsBrand record); + int updateByPrimaryKeySelective(PmsBrand row); - int updateByPrimaryKeyWithBLOBs(PmsBrand record); + int updateByPrimaryKeyWithBLOBs(PmsBrand row); - int updateByPrimaryKey(PmsBrand record); + int updateByPrimaryKey(PmsBrand row); } \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeCategoryMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeCategoryMapper.java deleted file mode 100644 index c9f4016f..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeCategoryMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsProductAttributeCategory; -import com.macro.mall.tiny.mbg.model.PmsProductAttributeCategoryExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsProductAttributeCategoryMapper { - long countByExample(PmsProductAttributeCategoryExample example); - - int deleteByExample(PmsProductAttributeCategoryExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsProductAttributeCategory record); - - int insertSelective(PmsProductAttributeCategory record); - - List selectByExample(PmsProductAttributeCategoryExample example); - - PmsProductAttributeCategory selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsProductAttributeCategory record, @Param("example") PmsProductAttributeCategoryExample example); - - int updateByExample(@Param("record") PmsProductAttributeCategory record, @Param("example") PmsProductAttributeCategoryExample example); - - int updateByPrimaryKeySelective(PmsProductAttributeCategory record); - - int updateByPrimaryKey(PmsProductAttributeCategory record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeMapper.java deleted file mode 100644 index 51a84e05..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsProductAttribute; -import com.macro.mall.tiny.mbg.model.PmsProductAttributeExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsProductAttributeMapper { - long countByExample(PmsProductAttributeExample example); - - int deleteByExample(PmsProductAttributeExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsProductAttribute record); - - int insertSelective(PmsProductAttribute record); - - List selectByExample(PmsProductAttributeExample example); - - PmsProductAttribute selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsProductAttribute record, @Param("example") PmsProductAttributeExample example); - - int updateByExample(@Param("record") PmsProductAttribute record, @Param("example") PmsProductAttributeExample example); - - int updateByPrimaryKeySelective(PmsProductAttribute record); - - int updateByPrimaryKey(PmsProductAttribute record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeValueMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeValueMapper.java deleted file mode 100644 index a9d7bfe2..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeValueMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsProductAttributeValue; -import com.macro.mall.tiny.mbg.model.PmsProductAttributeValueExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsProductAttributeValueMapper { - long countByExample(PmsProductAttributeValueExample example); - - int deleteByExample(PmsProductAttributeValueExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsProductAttributeValue record); - - int insertSelective(PmsProductAttributeValue record); - - List selectByExample(PmsProductAttributeValueExample example); - - PmsProductAttributeValue selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsProductAttributeValue record, @Param("example") PmsProductAttributeValueExample example); - - int updateByExample(@Param("record") PmsProductAttributeValue record, @Param("example") PmsProductAttributeValueExample example); - - int updateByPrimaryKeySelective(PmsProductAttributeValue record); - - int updateByPrimaryKey(PmsProductAttributeValue record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductCategoryMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductCategoryMapper.java deleted file mode 100644 index f3efde7a..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductCategoryMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsProductCategory; -import com.macro.mall.tiny.mbg.model.PmsProductCategoryExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsProductCategoryMapper { - long countByExample(PmsProductCategoryExample example); - - int deleteByExample(PmsProductCategoryExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsProductCategory record); - - int insertSelective(PmsProductCategory record); - - List selectByExampleWithBLOBs(PmsProductCategoryExample example); - - List selectByExample(PmsProductCategoryExample example); - - PmsProductCategory selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsProductCategory record, @Param("example") PmsProductCategoryExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsProductCategory record, @Param("example") PmsProductCategoryExample example); - - int updateByExample(@Param("record") PmsProductCategory record, @Param("example") PmsProductCategoryExample example); - - int updateByPrimaryKeySelective(PmsProductCategory record); - - int updateByPrimaryKeyWithBLOBs(PmsProductCategory record); - - int updateByPrimaryKey(PmsProductCategory record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductMapper.java deleted file mode 100644 index 2a66ea13..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/PmsProductMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.PmsProduct; -import com.macro.mall.tiny.mbg.model.PmsProductExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface PmsProductMapper { - long countByExample(PmsProductExample example); - - int deleteByExample(PmsProductExample example); - - int deleteByPrimaryKey(Long id); - - int insert(PmsProduct record); - - int insertSelective(PmsProduct record); - - List selectByExampleWithBLOBs(PmsProductExample example); - - List selectByExample(PmsProductExample example); - - PmsProduct selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") PmsProduct record, @Param("example") PmsProductExample example); - - int updateByExampleWithBLOBs(@Param("record") PmsProduct record, @Param("example") PmsProductExample example); - - int updateByExample(@Param("record") PmsProduct record, @Param("example") PmsProductExample example); - - int updateByPrimaryKeySelective(PmsProduct record); - - int updateByPrimaryKeyWithBLOBs(PmsProduct record); - - int updateByPrimaryKey(PmsProduct record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java deleted file mode 100644 index d85dac15..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminMapper { - long countByExample(UmsAdminExample example); - - int deleteByExample(UmsAdminExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdmin record); - - int insertSelective(UmsAdmin record); - - List selectByExample(UmsAdminExample example); - - UmsAdmin selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByExample(@Param("record") UmsAdmin record, @Param("example") UmsAdminExample example); - - int updateByPrimaryKeySelective(UmsAdmin record); - - int updateByPrimaryKey(UmsAdmin record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java deleted file mode 100644 index 6a6c4270..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminPermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminPermissionRelationMapper { - long countByExample(UmsAdminPermissionRelationExample example); - - int deleteByExample(UmsAdminPermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminPermissionRelation record); - - int insertSelective(UmsAdminPermissionRelation record); - - List selectByExample(UmsAdminPermissionRelationExample example); - - UmsAdminPermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByExample(@Param("record") UmsAdminPermissionRelation record, @Param("example") UmsAdminPermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminPermissionRelation record); - - int updateByPrimaryKey(UmsAdminPermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java deleted file mode 100644 index f9988a70..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelation; -import com.macro.mall.tiny.mbg.model.UmsAdminRoleRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsAdminRoleRelationMapper { - long countByExample(UmsAdminRoleRelationExample example); - - int deleteByExample(UmsAdminRoleRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsAdminRoleRelation record); - - int insertSelective(UmsAdminRoleRelation record); - - List selectByExample(UmsAdminRoleRelationExample example); - - UmsAdminRoleRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByExample(@Param("record") UmsAdminRoleRelation record, @Param("example") UmsAdminRoleRelationExample example); - - int updateByPrimaryKeySelective(UmsAdminRoleRelation record); - - int updateByPrimaryKey(UmsAdminRoleRelation record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java deleted file mode 100644 index ce8b0b2d..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsPermission; -import com.macro.mall.tiny.mbg.model.UmsPermissionExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsPermissionMapper { - long countByExample(UmsPermissionExample example); - - int deleteByExample(UmsPermissionExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsPermission record); - - int insertSelective(UmsPermission record); - - List selectByExample(UmsPermissionExample example); - - UmsPermission selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByExample(@Param("record") UmsPermission record, @Param("example") UmsPermissionExample example); - - int updateByPrimaryKeySelective(UmsPermission record); - - int updateByPrimaryKey(UmsPermission record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java deleted file mode 100644 index 10347344..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRole; -import com.macro.mall.tiny.mbg.model.UmsRoleExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRoleMapper { - long countByExample(UmsRoleExample example); - - int deleteByExample(UmsRoleExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRole record); - - int insertSelective(UmsRole record); - - List selectByExample(UmsRoleExample example); - - UmsRole selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByExample(@Param("record") UmsRole record, @Param("example") UmsRoleExample example); - - int updateByPrimaryKeySelective(UmsRole record); - - int updateByPrimaryKey(UmsRole record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java deleted file mode 100644 index 234ddd22..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.macro.mall.tiny.mbg.mapper; - -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelation; -import com.macro.mall.tiny.mbg.model.UmsRolePermissionRelationExample; -import java.util.List; -import org.apache.ibatis.annotations.Param; - -public interface UmsRolePermissionRelationMapper { - long countByExample(UmsRolePermissionRelationExample example); - - int deleteByExample(UmsRolePermissionRelationExample example); - - int deleteByPrimaryKey(Long id); - - int insert(UmsRolePermissionRelation record); - - int insertSelective(UmsRolePermissionRelation record); - - List selectByExample(UmsRolePermissionRelationExample example); - - UmsRolePermissionRelation selectByPrimaryKey(Long id); - - int updateByExampleSelective(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByExample(@Param("record") UmsRolePermissionRelation record, @Param("example") UmsRolePermissionRelationExample example); - - int updateByPrimaryKeySelective(UmsRolePermissionRelation record); - - int updateByPrimaryKey(UmsRolePermissionRelation record); -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java index 4e4a1108..c7e5880b 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsBrandExample.java @@ -11,7 +11,7 @@ public class PmsBrandExample { protected List oredCriteria; public PmsBrandExample() { - oredCriteria = new ArrayList(); + oredCriteria = new ArrayList<>(); } public void setOrderByClause(String orderByClause) { @@ -68,7 +68,7 @@ protected abstract static class GeneratedCriteria { protected GeneratedCriteria() { super(); - criteria = new ArrayList(); + criteria = new ArrayList<>(); } public boolean isValid() { @@ -746,7 +746,6 @@ public Criteria andBigPicNotBetween(String value1, String value2) { } public static class Criteria extends GeneratedCriteria { - protected Criteria() { super(); } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProduct.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProduct.java deleted file mode 100644 index 503b1454..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProduct.java +++ /dev/null @@ -1,513 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; - -public class PmsProduct implements Serializable { - private Long id; - - private Long brandId; - - private Long productCategoryId; - - private Long feightTemplateId; - - private Long productAttributeCategoryId; - - private String name; - - private String pic; - - @ApiModelProperty(value = "货号") - private String productSn; - - @ApiModelProperty(value = "删除状态:0->未删除;1->已删除") - private Integer deleteStatus; - - @ApiModelProperty(value = "上架状态:0->下架;1->上架") - private Integer publishStatus; - - @ApiModelProperty(value = "新品状态:0->不是新品;1->新品") - private Integer newStatus; - - @ApiModelProperty(value = "推荐状态;0->不推荐;1->推荐") - private Integer recommandStatus; - - @ApiModelProperty(value = "审核状态:0->未审核;1->审核通过") - private Integer verifyStatus; - - @ApiModelProperty(value = "排序") - private Integer sort; - - @ApiModelProperty(value = "销量") - private Integer sale; - - private BigDecimal price; - - @ApiModelProperty(value = "促销价格") - private BigDecimal promotionPrice; - - @ApiModelProperty(value = "赠送的成长值") - private Integer giftGrowth; - - @ApiModelProperty(value = "赠送的积分") - private Integer giftPoint; - - @ApiModelProperty(value = "限制使用的积分数") - private Integer usePointLimit; - - @ApiModelProperty(value = "副标题") - private String subTitle; - - @ApiModelProperty(value = "市场价") - private BigDecimal originalPrice; - - @ApiModelProperty(value = "库存") - private Integer stock; - - @ApiModelProperty(value = "库存预警值") - private Integer lowStock; - - @ApiModelProperty(value = "单位") - private String unit; - - @ApiModelProperty(value = "商品重量,默认为克") - private BigDecimal weight; - - @ApiModelProperty(value = "是否为预告商品:0->不是;1->是") - private Integer previewStatus; - - @ApiModelProperty(value = "以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮") - private String serviceIds; - - private String keywords; - - private String note; - - @ApiModelProperty(value = "画册图片,连产品图片限制为5张,以逗号分割") - private String albumPics; - - private String detailTitle; - - @ApiModelProperty(value = "促销开始时间") - private Date promotionStartTime; - - @ApiModelProperty(value = "促销结束时间") - private Date promotionEndTime; - - @ApiModelProperty(value = "活动限购数量") - private Integer promotionPerLimit; - - @ApiModelProperty(value = "促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购") - private Integer promotionType; - - @ApiModelProperty(value = "品牌名称") - private String brandName; - - @ApiModelProperty(value = "商品分类名称") - private String productCategoryName; - - @ApiModelProperty(value = "商品描述") - private String description; - - private String detailDesc; - - @ApiModelProperty(value = "产品详情网页内容") - private String detailHtml; - - @ApiModelProperty(value = "移动端网页详情") - private String detailMobileHtml; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getBrandId() { - return brandId; - } - - public void setBrandId(Long brandId) { - this.brandId = brandId; - } - - public Long getProductCategoryId() { - return productCategoryId; - } - - public void setProductCategoryId(Long productCategoryId) { - this.productCategoryId = productCategoryId; - } - - public Long getFeightTemplateId() { - return feightTemplateId; - } - - public void setFeightTemplateId(Long feightTemplateId) { - this.feightTemplateId = feightTemplateId; - } - - public Long getProductAttributeCategoryId() { - return productAttributeCategoryId; - } - - public void setProductAttributeCategoryId(Long productAttributeCategoryId) { - this.productAttributeCategoryId = productAttributeCategoryId; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPic() { - return pic; - } - - public void setPic(String pic) { - this.pic = pic; - } - - public String getProductSn() { - return productSn; - } - - public void setProductSn(String productSn) { - this.productSn = productSn; - } - - public Integer getDeleteStatus() { - return deleteStatus; - } - - public void setDeleteStatus(Integer deleteStatus) { - this.deleteStatus = deleteStatus; - } - - public Integer getPublishStatus() { - return publishStatus; - } - - public void setPublishStatus(Integer publishStatus) { - this.publishStatus = publishStatus; - } - - public Integer getNewStatus() { - return newStatus; - } - - public void setNewStatus(Integer newStatus) { - this.newStatus = newStatus; - } - - public Integer getRecommandStatus() { - return recommandStatus; - } - - public void setRecommandStatus(Integer recommandStatus) { - this.recommandStatus = recommandStatus; - } - - public Integer getVerifyStatus() { - return verifyStatus; - } - - public void setVerifyStatus(Integer verifyStatus) { - this.verifyStatus = verifyStatus; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getSale() { - return sale; - } - - public void setSale(Integer sale) { - this.sale = sale; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public BigDecimal getPromotionPrice() { - return promotionPrice; - } - - public void setPromotionPrice(BigDecimal promotionPrice) { - this.promotionPrice = promotionPrice; - } - - public Integer getGiftGrowth() { - return giftGrowth; - } - - public void setGiftGrowth(Integer giftGrowth) { - this.giftGrowth = giftGrowth; - } - - public Integer getGiftPoint() { - return giftPoint; - } - - public void setGiftPoint(Integer giftPoint) { - this.giftPoint = giftPoint; - } - - public Integer getUsePointLimit() { - return usePointLimit; - } - - public void setUsePointLimit(Integer usePointLimit) { - this.usePointLimit = usePointLimit; - } - - public String getSubTitle() { - return subTitle; - } - - public void setSubTitle(String subTitle) { - this.subTitle = subTitle; - } - - public BigDecimal getOriginalPrice() { - return originalPrice; - } - - public void setOriginalPrice(BigDecimal originalPrice) { - this.originalPrice = originalPrice; - } - - public Integer getStock() { - return stock; - } - - public void setStock(Integer stock) { - this.stock = stock; - } - - public Integer getLowStock() { - return lowStock; - } - - public void setLowStock(Integer lowStock) { - this.lowStock = lowStock; - } - - public String getUnit() { - return unit; - } - - public void setUnit(String unit) { - this.unit = unit; - } - - public BigDecimal getWeight() { - return weight; - } - - public void setWeight(BigDecimal weight) { - this.weight = weight; - } - - public Integer getPreviewStatus() { - return previewStatus; - } - - public void setPreviewStatus(Integer previewStatus) { - this.previewStatus = previewStatus; - } - - public String getServiceIds() { - return serviceIds; - } - - public void setServiceIds(String serviceIds) { - this.serviceIds = serviceIds; - } - - public String getKeywords() { - return keywords; - } - - public void setKeywords(String keywords) { - this.keywords = keywords; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public String getAlbumPics() { - return albumPics; - } - - public void setAlbumPics(String albumPics) { - this.albumPics = albumPics; - } - - public String getDetailTitle() { - return detailTitle; - } - - public void setDetailTitle(String detailTitle) { - this.detailTitle = detailTitle; - } - - public Date getPromotionStartTime() { - return promotionStartTime; - } - - public void setPromotionStartTime(Date promotionStartTime) { - this.promotionStartTime = promotionStartTime; - } - - public Date getPromotionEndTime() { - return promotionEndTime; - } - - public void setPromotionEndTime(Date promotionEndTime) { - this.promotionEndTime = promotionEndTime; - } - - public Integer getPromotionPerLimit() { - return promotionPerLimit; - } - - public void setPromotionPerLimit(Integer promotionPerLimit) { - this.promotionPerLimit = promotionPerLimit; - } - - public Integer getPromotionType() { - return promotionType; - } - - public void setPromotionType(Integer promotionType) { - this.promotionType = promotionType; - } - - public String getBrandName() { - return brandName; - } - - public void setBrandName(String brandName) { - this.brandName = brandName; - } - - public String getProductCategoryName() { - return productCategoryName; - } - - public void setProductCategoryName(String productCategoryName) { - this.productCategoryName = productCategoryName; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getDetailDesc() { - return detailDesc; - } - - public void setDetailDesc(String detailDesc) { - this.detailDesc = detailDesc; - } - - public String getDetailHtml() { - return detailHtml; - } - - public void setDetailHtml(String detailHtml) { - this.detailHtml = detailHtml; - } - - public String getDetailMobileHtml() { - return detailMobileHtml; - } - - public void setDetailMobileHtml(String detailMobileHtml) { - this.detailMobileHtml = detailMobileHtml; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", brandId=").append(brandId); - sb.append(", productCategoryId=").append(productCategoryId); - sb.append(", feightTemplateId=").append(feightTemplateId); - sb.append(", productAttributeCategoryId=").append(productAttributeCategoryId); - sb.append(", name=").append(name); - sb.append(", pic=").append(pic); - sb.append(", productSn=").append(productSn); - sb.append(", deleteStatus=").append(deleteStatus); - sb.append(", publishStatus=").append(publishStatus); - sb.append(", newStatus=").append(newStatus); - sb.append(", recommandStatus=").append(recommandStatus); - sb.append(", verifyStatus=").append(verifyStatus); - sb.append(", sort=").append(sort); - sb.append(", sale=").append(sale); - sb.append(", price=").append(price); - sb.append(", promotionPrice=").append(promotionPrice); - sb.append(", giftGrowth=").append(giftGrowth); - sb.append(", giftPoint=").append(giftPoint); - sb.append(", usePointLimit=").append(usePointLimit); - sb.append(", subTitle=").append(subTitle); - sb.append(", originalPrice=").append(originalPrice); - sb.append(", stock=").append(stock); - sb.append(", lowStock=").append(lowStock); - sb.append(", unit=").append(unit); - sb.append(", weight=").append(weight); - sb.append(", previewStatus=").append(previewStatus); - sb.append(", serviceIds=").append(serviceIds); - sb.append(", keywords=").append(keywords); - sb.append(", note=").append(note); - sb.append(", albumPics=").append(albumPics); - sb.append(", detailTitle=").append(detailTitle); - sb.append(", promotionStartTime=").append(promotionStartTime); - sb.append(", promotionEndTime=").append(promotionEndTime); - sb.append(", promotionPerLimit=").append(promotionPerLimit); - sb.append(", promotionType=").append(promotionType); - sb.append(", brandName=").append(brandName); - sb.append(", productCategoryName=").append(productCategoryName); - sb.append(", description=").append(description); - sb.append(", detailDesc=").append(detailDesc); - sb.append(", detailHtml=").append(detailHtml); - sb.append(", detailMobileHtml=").append(detailMobileHtml); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttribute.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttribute.java deleted file mode 100644 index 488a1235..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttribute.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsProductAttribute implements Serializable { - private Long id; - - private Long productAttributeCategoryId; - - private String name; - - @ApiModelProperty(value = "属性选择类型:0->唯一;1->单选;2->多选") - private Integer selectType; - - @ApiModelProperty(value = "属性录入方式:0->手工录入;1->从列表中选取") - private Integer inputType; - - @ApiModelProperty(value = "可选值列表,以逗号隔开") - private String inputList; - - @ApiModelProperty(value = "排序字段:最高的可以单独上传图片") - private Integer sort; - - @ApiModelProperty(value = "分类筛选样式:1->普通;1->颜色") - private Integer filterType; - - @ApiModelProperty(value = "检索类型;0->不需要进行检索;1->关键字检索;2->范围检索") - private Integer searchType; - - @ApiModelProperty(value = "相同属性产品是否关联;0->不关联;1->关联") - private Integer relatedStatus; - - @ApiModelProperty(value = "是否支持手动新增;0->不支持;1->支持") - private Integer handAddStatus; - - @ApiModelProperty(value = "属性的类型;0->规格;1->参数") - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getProductAttributeCategoryId() { - return productAttributeCategoryId; - } - - public void setProductAttributeCategoryId(Long productAttributeCategoryId) { - this.productAttributeCategoryId = productAttributeCategoryId; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Integer getSelectType() { - return selectType; - } - - public void setSelectType(Integer selectType) { - this.selectType = selectType; - } - - public Integer getInputType() { - return inputType; - } - - public void setInputType(Integer inputType) { - this.inputType = inputType; - } - - public String getInputList() { - return inputList; - } - - public void setInputList(String inputList) { - this.inputList = inputList; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public Integer getFilterType() { - return filterType; - } - - public void setFilterType(Integer filterType) { - this.filterType = filterType; - } - - public Integer getSearchType() { - return searchType; - } - - public void setSearchType(Integer searchType) { - this.searchType = searchType; - } - - public Integer getRelatedStatus() { - return relatedStatus; - } - - public void setRelatedStatus(Integer relatedStatus) { - this.relatedStatus = relatedStatus; - } - - public Integer getHandAddStatus() { - return handAddStatus; - } - - public void setHandAddStatus(Integer handAddStatus) { - this.handAddStatus = handAddStatus; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", productAttributeCategoryId=").append(productAttributeCategoryId); - sb.append(", name=").append(name); - sb.append(", selectType=").append(selectType); - sb.append(", inputType=").append(inputType); - sb.append(", inputList=").append(inputList); - sb.append(", sort=").append(sort); - sb.append(", filterType=").append(filterType); - sb.append(", searchType=").append(searchType); - sb.append(", relatedStatus=").append(relatedStatus); - sb.append(", handAddStatus=").append(handAddStatus); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeCategory.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeCategory.java deleted file mode 100644 index bdac6b10..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeCategory.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsProductAttributeCategory implements Serializable { - private Long id; - - private String name; - - @ApiModelProperty(value = "属性数量") - private Integer attributeCount; - - @ApiModelProperty(value = "参数数量") - private Integer paramCount; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Integer getAttributeCount() { - return attributeCount; - } - - public void setAttributeCount(Integer attributeCount) { - this.attributeCount = attributeCount; - } - - public Integer getParamCount() { - return paramCount; - } - - public void setParamCount(Integer paramCount) { - this.paramCount = paramCount; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", attributeCount=").append(attributeCount); - sb.append(", paramCount=").append(paramCount); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeCategoryExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeCategoryExample.java deleted file mode 100644 index c4c50761..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeCategoryExample.java +++ /dev/null @@ -1,450 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsProductAttributeCategoryExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsProductAttributeCategoryExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andAttributeCountIsNull() { - addCriterion("attribute_count is null"); - return (Criteria) this; - } - - public Criteria andAttributeCountIsNotNull() { - addCriterion("attribute_count is not null"); - return (Criteria) this; - } - - public Criteria andAttributeCountEqualTo(Integer value) { - addCriterion("attribute_count =", value, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountNotEqualTo(Integer value) { - addCriterion("attribute_count <>", value, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountGreaterThan(Integer value) { - addCriterion("attribute_count >", value, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountGreaterThanOrEqualTo(Integer value) { - addCriterion("attribute_count >=", value, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountLessThan(Integer value) { - addCriterion("attribute_count <", value, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountLessThanOrEqualTo(Integer value) { - addCriterion("attribute_count <=", value, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountIn(List values) { - addCriterion("attribute_count in", values, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountNotIn(List values) { - addCriterion("attribute_count not in", values, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountBetween(Integer value1, Integer value2) { - addCriterion("attribute_count between", value1, value2, "attributeCount"); - return (Criteria) this; - } - - public Criteria andAttributeCountNotBetween(Integer value1, Integer value2) { - addCriterion("attribute_count not between", value1, value2, "attributeCount"); - return (Criteria) this; - } - - public Criteria andParamCountIsNull() { - addCriterion("param_count is null"); - return (Criteria) this; - } - - public Criteria andParamCountIsNotNull() { - addCriterion("param_count is not null"); - return (Criteria) this; - } - - public Criteria andParamCountEqualTo(Integer value) { - addCriterion("param_count =", value, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountNotEqualTo(Integer value) { - addCriterion("param_count <>", value, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountGreaterThan(Integer value) { - addCriterion("param_count >", value, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountGreaterThanOrEqualTo(Integer value) { - addCriterion("param_count >=", value, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountLessThan(Integer value) { - addCriterion("param_count <", value, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountLessThanOrEqualTo(Integer value) { - addCriterion("param_count <=", value, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountIn(List values) { - addCriterion("param_count in", values, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountNotIn(List values) { - addCriterion("param_count not in", values, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountBetween(Integer value1, Integer value2) { - addCriterion("param_count between", value1, value2, "paramCount"); - return (Criteria) this; - } - - public Criteria andParamCountNotBetween(Integer value1, Integer value2) { - addCriterion("param_count not between", value1, value2, "paramCount"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeExample.java deleted file mode 100644 index bf3ed7dc..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeExample.java +++ /dev/null @@ -1,940 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsProductAttributeExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsProductAttributeExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdIsNull() { - addCriterion("product_attribute_category_id is null"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdIsNotNull() { - addCriterion("product_attribute_category_id is not null"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdEqualTo(Long value) { - addCriterion("product_attribute_category_id =", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdNotEqualTo(Long value) { - addCriterion("product_attribute_category_id <>", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdGreaterThan(Long value) { - addCriterion("product_attribute_category_id >", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdGreaterThanOrEqualTo(Long value) { - addCriterion("product_attribute_category_id >=", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdLessThan(Long value) { - addCriterion("product_attribute_category_id <", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdLessThanOrEqualTo(Long value) { - addCriterion("product_attribute_category_id <=", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdIn(List values) { - addCriterion("product_attribute_category_id in", values, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdNotIn(List values) { - addCriterion("product_attribute_category_id not in", values, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdBetween(Long value1, Long value2) { - addCriterion("product_attribute_category_id between", value1, value2, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdNotBetween(Long value1, Long value2) { - addCriterion("product_attribute_category_id not between", value1, value2, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andSelectTypeIsNull() { - addCriterion("select_type is null"); - return (Criteria) this; - } - - public Criteria andSelectTypeIsNotNull() { - addCriterion("select_type is not null"); - return (Criteria) this; - } - - public Criteria andSelectTypeEqualTo(Integer value) { - addCriterion("select_type =", value, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeNotEqualTo(Integer value) { - addCriterion("select_type <>", value, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeGreaterThan(Integer value) { - addCriterion("select_type >", value, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("select_type >=", value, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeLessThan(Integer value) { - addCriterion("select_type <", value, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeLessThanOrEqualTo(Integer value) { - addCriterion("select_type <=", value, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeIn(List values) { - addCriterion("select_type in", values, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeNotIn(List values) { - addCriterion("select_type not in", values, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeBetween(Integer value1, Integer value2) { - addCriterion("select_type between", value1, value2, "selectType"); - return (Criteria) this; - } - - public Criteria andSelectTypeNotBetween(Integer value1, Integer value2) { - addCriterion("select_type not between", value1, value2, "selectType"); - return (Criteria) this; - } - - public Criteria andInputTypeIsNull() { - addCriterion("input_type is null"); - return (Criteria) this; - } - - public Criteria andInputTypeIsNotNull() { - addCriterion("input_type is not null"); - return (Criteria) this; - } - - public Criteria andInputTypeEqualTo(Integer value) { - addCriterion("input_type =", value, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeNotEqualTo(Integer value) { - addCriterion("input_type <>", value, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeGreaterThan(Integer value) { - addCriterion("input_type >", value, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("input_type >=", value, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeLessThan(Integer value) { - addCriterion("input_type <", value, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeLessThanOrEqualTo(Integer value) { - addCriterion("input_type <=", value, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeIn(List values) { - addCriterion("input_type in", values, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeNotIn(List values) { - addCriterion("input_type not in", values, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeBetween(Integer value1, Integer value2) { - addCriterion("input_type between", value1, value2, "inputType"); - return (Criteria) this; - } - - public Criteria andInputTypeNotBetween(Integer value1, Integer value2) { - addCriterion("input_type not between", value1, value2, "inputType"); - return (Criteria) this; - } - - public Criteria andInputListIsNull() { - addCriterion("input_list is null"); - return (Criteria) this; - } - - public Criteria andInputListIsNotNull() { - addCriterion("input_list is not null"); - return (Criteria) this; - } - - public Criteria andInputListEqualTo(String value) { - addCriterion("input_list =", value, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListNotEqualTo(String value) { - addCriterion("input_list <>", value, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListGreaterThan(String value) { - addCriterion("input_list >", value, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListGreaterThanOrEqualTo(String value) { - addCriterion("input_list >=", value, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListLessThan(String value) { - addCriterion("input_list <", value, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListLessThanOrEqualTo(String value) { - addCriterion("input_list <=", value, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListLike(String value) { - addCriterion("input_list like", value, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListNotLike(String value) { - addCriterion("input_list not like", value, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListIn(List values) { - addCriterion("input_list in", values, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListNotIn(List values) { - addCriterion("input_list not in", values, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListBetween(String value1, String value2) { - addCriterion("input_list between", value1, value2, "inputList"); - return (Criteria) this; - } - - public Criteria andInputListNotBetween(String value1, String value2) { - addCriterion("input_list not between", value1, value2, "inputList"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andFilterTypeIsNull() { - addCriterion("filter_type is null"); - return (Criteria) this; - } - - public Criteria andFilterTypeIsNotNull() { - addCriterion("filter_type is not null"); - return (Criteria) this; - } - - public Criteria andFilterTypeEqualTo(Integer value) { - addCriterion("filter_type =", value, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeNotEqualTo(Integer value) { - addCriterion("filter_type <>", value, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeGreaterThan(Integer value) { - addCriterion("filter_type >", value, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("filter_type >=", value, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeLessThan(Integer value) { - addCriterion("filter_type <", value, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeLessThanOrEqualTo(Integer value) { - addCriterion("filter_type <=", value, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeIn(List values) { - addCriterion("filter_type in", values, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeNotIn(List values) { - addCriterion("filter_type not in", values, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeBetween(Integer value1, Integer value2) { - addCriterion("filter_type between", value1, value2, "filterType"); - return (Criteria) this; - } - - public Criteria andFilterTypeNotBetween(Integer value1, Integer value2) { - addCriterion("filter_type not between", value1, value2, "filterType"); - return (Criteria) this; - } - - public Criteria andSearchTypeIsNull() { - addCriterion("search_type is null"); - return (Criteria) this; - } - - public Criteria andSearchTypeIsNotNull() { - addCriterion("search_type is not null"); - return (Criteria) this; - } - - public Criteria andSearchTypeEqualTo(Integer value) { - addCriterion("search_type =", value, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeNotEqualTo(Integer value) { - addCriterion("search_type <>", value, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeGreaterThan(Integer value) { - addCriterion("search_type >", value, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("search_type >=", value, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeLessThan(Integer value) { - addCriterion("search_type <", value, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeLessThanOrEqualTo(Integer value) { - addCriterion("search_type <=", value, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeIn(List values) { - addCriterion("search_type in", values, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeNotIn(List values) { - addCriterion("search_type not in", values, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeBetween(Integer value1, Integer value2) { - addCriterion("search_type between", value1, value2, "searchType"); - return (Criteria) this; - } - - public Criteria andSearchTypeNotBetween(Integer value1, Integer value2) { - addCriterion("search_type not between", value1, value2, "searchType"); - return (Criteria) this; - } - - public Criteria andRelatedStatusIsNull() { - addCriterion("related_status is null"); - return (Criteria) this; - } - - public Criteria andRelatedStatusIsNotNull() { - addCriterion("related_status is not null"); - return (Criteria) this; - } - - public Criteria andRelatedStatusEqualTo(Integer value) { - addCriterion("related_status =", value, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusNotEqualTo(Integer value) { - addCriterion("related_status <>", value, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusGreaterThan(Integer value) { - addCriterion("related_status >", value, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("related_status >=", value, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusLessThan(Integer value) { - addCriterion("related_status <", value, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusLessThanOrEqualTo(Integer value) { - addCriterion("related_status <=", value, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusIn(List values) { - addCriterion("related_status in", values, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusNotIn(List values) { - addCriterion("related_status not in", values, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusBetween(Integer value1, Integer value2) { - addCriterion("related_status between", value1, value2, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andRelatedStatusNotBetween(Integer value1, Integer value2) { - addCriterion("related_status not between", value1, value2, "relatedStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusIsNull() { - addCriterion("hand_add_status is null"); - return (Criteria) this; - } - - public Criteria andHandAddStatusIsNotNull() { - addCriterion("hand_add_status is not null"); - return (Criteria) this; - } - - public Criteria andHandAddStatusEqualTo(Integer value) { - addCriterion("hand_add_status =", value, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusNotEqualTo(Integer value) { - addCriterion("hand_add_status <>", value, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusGreaterThan(Integer value) { - addCriterion("hand_add_status >", value, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("hand_add_status >=", value, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusLessThan(Integer value) { - addCriterion("hand_add_status <", value, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusLessThanOrEqualTo(Integer value) { - addCriterion("hand_add_status <=", value, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusIn(List values) { - addCriterion("hand_add_status in", values, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusNotIn(List values) { - addCriterion("hand_add_status not in", values, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusBetween(Integer value1, Integer value2) { - addCriterion("hand_add_status between", value1, value2, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andHandAddStatusNotBetween(Integer value1, Integer value2) { - addCriterion("hand_add_status not between", value1, value2, "handAddStatus"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeValue.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeValue.java deleted file mode 100644 index 9fd6a1c2..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeValue.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsProductAttributeValue implements Serializable { - private Long id; - - private Long productId; - - private Long productAttributeId; - - @ApiModelProperty(value = "手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开") - private String value; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getProductId() { - return productId; - } - - public void setProductId(Long productId) { - this.productId = productId; - } - - public Long getProductAttributeId() { - return productAttributeId; - } - - public void setProductAttributeId(Long productAttributeId) { - this.productAttributeId = productAttributeId; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", productId=").append(productId); - sb.append(", productAttributeId=").append(productAttributeId); - sb.append(", value=").append(value); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeValueExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeValueExample.java deleted file mode 100644 index 51f40b20..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductAttributeValueExample.java +++ /dev/null @@ -1,450 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsProductAttributeValueExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsProductAttributeValueExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andProductIdIsNull() { - addCriterion("product_id is null"); - return (Criteria) this; - } - - public Criteria andProductIdIsNotNull() { - addCriterion("product_id is not null"); - return (Criteria) this; - } - - public Criteria andProductIdEqualTo(Long value) { - addCriterion("product_id =", value, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdNotEqualTo(Long value) { - addCriterion("product_id <>", value, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdGreaterThan(Long value) { - addCriterion("product_id >", value, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdGreaterThanOrEqualTo(Long value) { - addCriterion("product_id >=", value, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdLessThan(Long value) { - addCriterion("product_id <", value, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdLessThanOrEqualTo(Long value) { - addCriterion("product_id <=", value, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdIn(List values) { - addCriterion("product_id in", values, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdNotIn(List values) { - addCriterion("product_id not in", values, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdBetween(Long value1, Long value2) { - addCriterion("product_id between", value1, value2, "productId"); - return (Criteria) this; - } - - public Criteria andProductIdNotBetween(Long value1, Long value2) { - addCriterion("product_id not between", value1, value2, "productId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdIsNull() { - addCriterion("product_attribute_id is null"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdIsNotNull() { - addCriterion("product_attribute_id is not null"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdEqualTo(Long value) { - addCriterion("product_attribute_id =", value, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdNotEqualTo(Long value) { - addCriterion("product_attribute_id <>", value, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdGreaterThan(Long value) { - addCriterion("product_attribute_id >", value, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdGreaterThanOrEqualTo(Long value) { - addCriterion("product_attribute_id >=", value, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdLessThan(Long value) { - addCriterion("product_attribute_id <", value, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdLessThanOrEqualTo(Long value) { - addCriterion("product_attribute_id <=", value, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdIn(List values) { - addCriterion("product_attribute_id in", values, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdNotIn(List values) { - addCriterion("product_attribute_id not in", values, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdBetween(Long value1, Long value2) { - addCriterion("product_attribute_id between", value1, value2, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andProductAttributeIdNotBetween(Long value1, Long value2) { - addCriterion("product_attribute_id not between", value1, value2, "productAttributeId"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductCategory.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductCategory.java deleted file mode 100644 index 1bc10e59..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductCategory.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class PmsProductCategory implements Serializable { - private Long id; - - @ApiModelProperty(value = "上机分类的编号:0表示一级分类") - private Long parentId; - - private String name; - - @ApiModelProperty(value = "分类级别:0->1级;1->2级") - private Integer level; - - private Integer productCount; - - private String productUnit; - - @ApiModelProperty(value = "是否显示在导航栏:0->不显示;1->显示") - private Integer navStatus; - - @ApiModelProperty(value = "显示状态:0->不显示;1->显示") - private Integer showStatus; - - private Integer sort; - - @ApiModelProperty(value = "图标") - private String icon; - - private String keywords; - - @ApiModelProperty(value = "描述") - private String description; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getParentId() { - return parentId; - } - - public void setParentId(Long parentId) { - this.parentId = parentId; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Integer getLevel() { - return level; - } - - public void setLevel(Integer level) { - this.level = level; - } - - public Integer getProductCount() { - return productCount; - } - - public void setProductCount(Integer productCount) { - this.productCount = productCount; - } - - public String getProductUnit() { - return productUnit; - } - - public void setProductUnit(String productUnit) { - this.productUnit = productUnit; - } - - public Integer getNavStatus() { - return navStatus; - } - - public void setNavStatus(Integer navStatus) { - this.navStatus = navStatus; - } - - public Integer getShowStatus() { - return showStatus; - } - - public void setShowStatus(Integer showStatus) { - this.showStatus = showStatus; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getKeywords() { - return keywords; - } - - public void setKeywords(String keywords) { - this.keywords = keywords; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", parentId=").append(parentId); - sb.append(", name=").append(name); - sb.append(", level=").append(level); - sb.append(", productCount=").append(productCount); - sb.append(", productUnit=").append(productUnit); - sb.append(", navStatus=").append(navStatus); - sb.append(", showStatus=").append(showStatus); - sb.append(", sort=").append(sort); - sb.append(", icon=").append(icon); - sb.append(", keywords=").append(keywords); - sb.append(", description=").append(description); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductCategoryExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductCategoryExample.java deleted file mode 100644 index 7b774272..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductCategoryExample.java +++ /dev/null @@ -1,900 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class PmsProductCategoryExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsProductCategoryExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andParentIdIsNull() { - addCriterion("parent_id is null"); - return (Criteria) this; - } - - public Criteria andParentIdIsNotNull() { - addCriterion("parent_id is not null"); - return (Criteria) this; - } - - public Criteria andParentIdEqualTo(Long value) { - addCriterion("parent_id =", value, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdNotEqualTo(Long value) { - addCriterion("parent_id <>", value, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdGreaterThan(Long value) { - addCriterion("parent_id >", value, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdGreaterThanOrEqualTo(Long value) { - addCriterion("parent_id >=", value, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdLessThan(Long value) { - addCriterion("parent_id <", value, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdLessThanOrEqualTo(Long value) { - addCriterion("parent_id <=", value, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdIn(List values) { - addCriterion("parent_id in", values, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdNotIn(List values) { - addCriterion("parent_id not in", values, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdBetween(Long value1, Long value2) { - addCriterion("parent_id between", value1, value2, "parentId"); - return (Criteria) this; - } - - public Criteria andParentIdNotBetween(Long value1, Long value2) { - addCriterion("parent_id not between", value1, value2, "parentId"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andLevelIsNull() { - addCriterion("level is null"); - return (Criteria) this; - } - - public Criteria andLevelIsNotNull() { - addCriterion("level is not null"); - return (Criteria) this; - } - - public Criteria andLevelEqualTo(Integer value) { - addCriterion("level =", value, "level"); - return (Criteria) this; - } - - public Criteria andLevelNotEqualTo(Integer value) { - addCriterion("level <>", value, "level"); - return (Criteria) this; - } - - public Criteria andLevelGreaterThan(Integer value) { - addCriterion("level >", value, "level"); - return (Criteria) this; - } - - public Criteria andLevelGreaterThanOrEqualTo(Integer value) { - addCriterion("level >=", value, "level"); - return (Criteria) this; - } - - public Criteria andLevelLessThan(Integer value) { - addCriterion("level <", value, "level"); - return (Criteria) this; - } - - public Criteria andLevelLessThanOrEqualTo(Integer value) { - addCriterion("level <=", value, "level"); - return (Criteria) this; - } - - public Criteria andLevelIn(List values) { - addCriterion("level in", values, "level"); - return (Criteria) this; - } - - public Criteria andLevelNotIn(List values) { - addCriterion("level not in", values, "level"); - return (Criteria) this; - } - - public Criteria andLevelBetween(Integer value1, Integer value2) { - addCriterion("level between", value1, value2, "level"); - return (Criteria) this; - } - - public Criteria andLevelNotBetween(Integer value1, Integer value2) { - addCriterion("level not between", value1, value2, "level"); - return (Criteria) this; - } - - public Criteria andProductCountIsNull() { - addCriterion("product_count is null"); - return (Criteria) this; - } - - public Criteria andProductCountIsNotNull() { - addCriterion("product_count is not null"); - return (Criteria) this; - } - - public Criteria andProductCountEqualTo(Integer value) { - addCriterion("product_count =", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotEqualTo(Integer value) { - addCriterion("product_count <>", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThan(Integer value) { - addCriterion("product_count >", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountGreaterThanOrEqualTo(Integer value) { - addCriterion("product_count >=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThan(Integer value) { - addCriterion("product_count <", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountLessThanOrEqualTo(Integer value) { - addCriterion("product_count <=", value, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountIn(List values) { - addCriterion("product_count in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotIn(List values) { - addCriterion("product_count not in", values, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountBetween(Integer value1, Integer value2) { - addCriterion("product_count between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductCountNotBetween(Integer value1, Integer value2) { - addCriterion("product_count not between", value1, value2, "productCount"); - return (Criteria) this; - } - - public Criteria andProductUnitIsNull() { - addCriterion("product_unit is null"); - return (Criteria) this; - } - - public Criteria andProductUnitIsNotNull() { - addCriterion("product_unit is not null"); - return (Criteria) this; - } - - public Criteria andProductUnitEqualTo(String value) { - addCriterion("product_unit =", value, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitNotEqualTo(String value) { - addCriterion("product_unit <>", value, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitGreaterThan(String value) { - addCriterion("product_unit >", value, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitGreaterThanOrEqualTo(String value) { - addCriterion("product_unit >=", value, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitLessThan(String value) { - addCriterion("product_unit <", value, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitLessThanOrEqualTo(String value) { - addCriterion("product_unit <=", value, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitLike(String value) { - addCriterion("product_unit like", value, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitNotLike(String value) { - addCriterion("product_unit not like", value, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitIn(List values) { - addCriterion("product_unit in", values, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitNotIn(List values) { - addCriterion("product_unit not in", values, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitBetween(String value1, String value2) { - addCriterion("product_unit between", value1, value2, "productUnit"); - return (Criteria) this; - } - - public Criteria andProductUnitNotBetween(String value1, String value2) { - addCriterion("product_unit not between", value1, value2, "productUnit"); - return (Criteria) this; - } - - public Criteria andNavStatusIsNull() { - addCriterion("nav_status is null"); - return (Criteria) this; - } - - public Criteria andNavStatusIsNotNull() { - addCriterion("nav_status is not null"); - return (Criteria) this; - } - - public Criteria andNavStatusEqualTo(Integer value) { - addCriterion("nav_status =", value, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusNotEqualTo(Integer value) { - addCriterion("nav_status <>", value, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusGreaterThan(Integer value) { - addCriterion("nav_status >", value, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("nav_status >=", value, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusLessThan(Integer value) { - addCriterion("nav_status <", value, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusLessThanOrEqualTo(Integer value) { - addCriterion("nav_status <=", value, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusIn(List values) { - addCriterion("nav_status in", values, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusNotIn(List values) { - addCriterion("nav_status not in", values, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusBetween(Integer value1, Integer value2) { - addCriterion("nav_status between", value1, value2, "navStatus"); - return (Criteria) this; - } - - public Criteria andNavStatusNotBetween(Integer value1, Integer value2) { - addCriterion("nav_status not between", value1, value2, "navStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNull() { - addCriterion("show_status is null"); - return (Criteria) this; - } - - public Criteria andShowStatusIsNotNull() { - addCriterion("show_status is not null"); - return (Criteria) this; - } - - public Criteria andShowStatusEqualTo(Integer value) { - addCriterion("show_status =", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotEqualTo(Integer value) { - addCriterion("show_status <>", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThan(Integer value) { - addCriterion("show_status >", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("show_status >=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThan(Integer value) { - addCriterion("show_status <", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusLessThanOrEqualTo(Integer value) { - addCriterion("show_status <=", value, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusIn(List values) { - addCriterion("show_status in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotIn(List values) { - addCriterion("show_status not in", values, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusBetween(Integer value1, Integer value2) { - addCriterion("show_status between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andShowStatusNotBetween(Integer value1, Integer value2) { - addCriterion("show_status not between", value1, value2, "showStatus"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andKeywordsIsNull() { - addCriterion("keywords is null"); - return (Criteria) this; - } - - public Criteria andKeywordsIsNotNull() { - addCriterion("keywords is not null"); - return (Criteria) this; - } - - public Criteria andKeywordsEqualTo(String value) { - addCriterion("keywords =", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsNotEqualTo(String value) { - addCriterion("keywords <>", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsGreaterThan(String value) { - addCriterion("keywords >", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsGreaterThanOrEqualTo(String value) { - addCriterion("keywords >=", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsLessThan(String value) { - addCriterion("keywords <", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsLessThanOrEqualTo(String value) { - addCriterion("keywords <=", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsLike(String value) { - addCriterion("keywords like", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsNotLike(String value) { - addCriterion("keywords not like", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsIn(List values) { - addCriterion("keywords in", values, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsNotIn(List values) { - addCriterion("keywords not in", values, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsBetween(String value1, String value2) { - addCriterion("keywords between", value1, value2, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsNotBetween(String value1, String value2) { - addCriterion("keywords not between", value1, value2, "keywords"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductExample.java deleted file mode 100644 index 5d909106..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/PmsProductExample.java +++ /dev/null @@ -1,2602 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class PmsProductExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public PmsProductExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andBrandIdIsNull() { - addCriterion("brand_id is null"); - return (Criteria) this; - } - - public Criteria andBrandIdIsNotNull() { - addCriterion("brand_id is not null"); - return (Criteria) this; - } - - public Criteria andBrandIdEqualTo(Long value) { - addCriterion("brand_id =", value, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdNotEqualTo(Long value) { - addCriterion("brand_id <>", value, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdGreaterThan(Long value) { - addCriterion("brand_id >", value, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdGreaterThanOrEqualTo(Long value) { - addCriterion("brand_id >=", value, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdLessThan(Long value) { - addCriterion("brand_id <", value, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdLessThanOrEqualTo(Long value) { - addCriterion("brand_id <=", value, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdIn(List values) { - addCriterion("brand_id in", values, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdNotIn(List values) { - addCriterion("brand_id not in", values, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdBetween(Long value1, Long value2) { - addCriterion("brand_id between", value1, value2, "brandId"); - return (Criteria) this; - } - - public Criteria andBrandIdNotBetween(Long value1, Long value2) { - addCriterion("brand_id not between", value1, value2, "brandId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdIsNull() { - addCriterion("product_category_id is null"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdIsNotNull() { - addCriterion("product_category_id is not null"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdEqualTo(Long value) { - addCriterion("product_category_id =", value, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdNotEqualTo(Long value) { - addCriterion("product_category_id <>", value, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdGreaterThan(Long value) { - addCriterion("product_category_id >", value, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdGreaterThanOrEqualTo(Long value) { - addCriterion("product_category_id >=", value, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdLessThan(Long value) { - addCriterion("product_category_id <", value, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdLessThanOrEqualTo(Long value) { - addCriterion("product_category_id <=", value, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdIn(List values) { - addCriterion("product_category_id in", values, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdNotIn(List values) { - addCriterion("product_category_id not in", values, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdBetween(Long value1, Long value2) { - addCriterion("product_category_id between", value1, value2, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andProductCategoryIdNotBetween(Long value1, Long value2) { - addCriterion("product_category_id not between", value1, value2, "productCategoryId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdIsNull() { - addCriterion("feight_template_id is null"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdIsNotNull() { - addCriterion("feight_template_id is not null"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdEqualTo(Long value) { - addCriterion("feight_template_id =", value, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdNotEqualTo(Long value) { - addCriterion("feight_template_id <>", value, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdGreaterThan(Long value) { - addCriterion("feight_template_id >", value, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdGreaterThanOrEqualTo(Long value) { - addCriterion("feight_template_id >=", value, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdLessThan(Long value) { - addCriterion("feight_template_id <", value, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdLessThanOrEqualTo(Long value) { - addCriterion("feight_template_id <=", value, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdIn(List values) { - addCriterion("feight_template_id in", values, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdNotIn(List values) { - addCriterion("feight_template_id not in", values, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdBetween(Long value1, Long value2) { - addCriterion("feight_template_id between", value1, value2, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andFeightTemplateIdNotBetween(Long value1, Long value2) { - addCriterion("feight_template_id not between", value1, value2, "feightTemplateId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdIsNull() { - addCriterion("product_attribute_category_id is null"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdIsNotNull() { - addCriterion("product_attribute_category_id is not null"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdEqualTo(Long value) { - addCriterion("product_attribute_category_id =", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdNotEqualTo(Long value) { - addCriterion("product_attribute_category_id <>", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdGreaterThan(Long value) { - addCriterion("product_attribute_category_id >", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdGreaterThanOrEqualTo(Long value) { - addCriterion("product_attribute_category_id >=", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdLessThan(Long value) { - addCriterion("product_attribute_category_id <", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdLessThanOrEqualTo(Long value) { - addCriterion("product_attribute_category_id <=", value, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdIn(List values) { - addCriterion("product_attribute_category_id in", values, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdNotIn(List values) { - addCriterion("product_attribute_category_id not in", values, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdBetween(Long value1, Long value2) { - addCriterion("product_attribute_category_id between", value1, value2, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andProductAttributeCategoryIdNotBetween(Long value1, Long value2) { - addCriterion("product_attribute_category_id not between", value1, value2, "productAttributeCategoryId"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andPicIsNull() { - addCriterion("pic is null"); - return (Criteria) this; - } - - public Criteria andPicIsNotNull() { - addCriterion("pic is not null"); - return (Criteria) this; - } - - public Criteria andPicEqualTo(String value) { - addCriterion("pic =", value, "pic"); - return (Criteria) this; - } - - public Criteria andPicNotEqualTo(String value) { - addCriterion("pic <>", value, "pic"); - return (Criteria) this; - } - - public Criteria andPicGreaterThan(String value) { - addCriterion("pic >", value, "pic"); - return (Criteria) this; - } - - public Criteria andPicGreaterThanOrEqualTo(String value) { - addCriterion("pic >=", value, "pic"); - return (Criteria) this; - } - - public Criteria andPicLessThan(String value) { - addCriterion("pic <", value, "pic"); - return (Criteria) this; - } - - public Criteria andPicLessThanOrEqualTo(String value) { - addCriterion("pic <=", value, "pic"); - return (Criteria) this; - } - - public Criteria andPicLike(String value) { - addCriterion("pic like", value, "pic"); - return (Criteria) this; - } - - public Criteria andPicNotLike(String value) { - addCriterion("pic not like", value, "pic"); - return (Criteria) this; - } - - public Criteria andPicIn(List values) { - addCriterion("pic in", values, "pic"); - return (Criteria) this; - } - - public Criteria andPicNotIn(List values) { - addCriterion("pic not in", values, "pic"); - return (Criteria) this; - } - - public Criteria andPicBetween(String value1, String value2) { - addCriterion("pic between", value1, value2, "pic"); - return (Criteria) this; - } - - public Criteria andPicNotBetween(String value1, String value2) { - addCriterion("pic not between", value1, value2, "pic"); - return (Criteria) this; - } - - public Criteria andProductSnIsNull() { - addCriterion("product_sn is null"); - return (Criteria) this; - } - - public Criteria andProductSnIsNotNull() { - addCriterion("product_sn is not null"); - return (Criteria) this; - } - - public Criteria andProductSnEqualTo(String value) { - addCriterion("product_sn =", value, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnNotEqualTo(String value) { - addCriterion("product_sn <>", value, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnGreaterThan(String value) { - addCriterion("product_sn >", value, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnGreaterThanOrEqualTo(String value) { - addCriterion("product_sn >=", value, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnLessThan(String value) { - addCriterion("product_sn <", value, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnLessThanOrEqualTo(String value) { - addCriterion("product_sn <=", value, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnLike(String value) { - addCriterion("product_sn like", value, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnNotLike(String value) { - addCriterion("product_sn not like", value, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnIn(List values) { - addCriterion("product_sn in", values, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnNotIn(List values) { - addCriterion("product_sn not in", values, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnBetween(String value1, String value2) { - addCriterion("product_sn between", value1, value2, "productSn"); - return (Criteria) this; - } - - public Criteria andProductSnNotBetween(String value1, String value2) { - addCriterion("product_sn not between", value1, value2, "productSn"); - return (Criteria) this; - } - - public Criteria andDeleteStatusIsNull() { - addCriterion("delete_status is null"); - return (Criteria) this; - } - - public Criteria andDeleteStatusIsNotNull() { - addCriterion("delete_status is not null"); - return (Criteria) this; - } - - public Criteria andDeleteStatusEqualTo(Integer value) { - addCriterion("delete_status =", value, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusNotEqualTo(Integer value) { - addCriterion("delete_status <>", value, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusGreaterThan(Integer value) { - addCriterion("delete_status >", value, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("delete_status >=", value, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusLessThan(Integer value) { - addCriterion("delete_status <", value, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusLessThanOrEqualTo(Integer value) { - addCriterion("delete_status <=", value, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusIn(List values) { - addCriterion("delete_status in", values, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusNotIn(List values) { - addCriterion("delete_status not in", values, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusBetween(Integer value1, Integer value2) { - addCriterion("delete_status between", value1, value2, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andDeleteStatusNotBetween(Integer value1, Integer value2) { - addCriterion("delete_status not between", value1, value2, "deleteStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusIsNull() { - addCriterion("publish_status is null"); - return (Criteria) this; - } - - public Criteria andPublishStatusIsNotNull() { - addCriterion("publish_status is not null"); - return (Criteria) this; - } - - public Criteria andPublishStatusEqualTo(Integer value) { - addCriterion("publish_status =", value, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusNotEqualTo(Integer value) { - addCriterion("publish_status <>", value, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusGreaterThan(Integer value) { - addCriterion("publish_status >", value, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("publish_status >=", value, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusLessThan(Integer value) { - addCriterion("publish_status <", value, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusLessThanOrEqualTo(Integer value) { - addCriterion("publish_status <=", value, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusIn(List values) { - addCriterion("publish_status in", values, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusNotIn(List values) { - addCriterion("publish_status not in", values, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusBetween(Integer value1, Integer value2) { - addCriterion("publish_status between", value1, value2, "publishStatus"); - return (Criteria) this; - } - - public Criteria andPublishStatusNotBetween(Integer value1, Integer value2) { - addCriterion("publish_status not between", value1, value2, "publishStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusIsNull() { - addCriterion("new_status is null"); - return (Criteria) this; - } - - public Criteria andNewStatusIsNotNull() { - addCriterion("new_status is not null"); - return (Criteria) this; - } - - public Criteria andNewStatusEqualTo(Integer value) { - addCriterion("new_status =", value, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusNotEqualTo(Integer value) { - addCriterion("new_status <>", value, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusGreaterThan(Integer value) { - addCriterion("new_status >", value, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("new_status >=", value, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusLessThan(Integer value) { - addCriterion("new_status <", value, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusLessThanOrEqualTo(Integer value) { - addCriterion("new_status <=", value, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusIn(List values) { - addCriterion("new_status in", values, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusNotIn(List values) { - addCriterion("new_status not in", values, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusBetween(Integer value1, Integer value2) { - addCriterion("new_status between", value1, value2, "newStatus"); - return (Criteria) this; - } - - public Criteria andNewStatusNotBetween(Integer value1, Integer value2) { - addCriterion("new_status not between", value1, value2, "newStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusIsNull() { - addCriterion("recommand_status is null"); - return (Criteria) this; - } - - public Criteria andRecommandStatusIsNotNull() { - addCriterion("recommand_status is not null"); - return (Criteria) this; - } - - public Criteria andRecommandStatusEqualTo(Integer value) { - addCriterion("recommand_status =", value, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusNotEqualTo(Integer value) { - addCriterion("recommand_status <>", value, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusGreaterThan(Integer value) { - addCriterion("recommand_status >", value, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("recommand_status >=", value, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusLessThan(Integer value) { - addCriterion("recommand_status <", value, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusLessThanOrEqualTo(Integer value) { - addCriterion("recommand_status <=", value, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusIn(List values) { - addCriterion("recommand_status in", values, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusNotIn(List values) { - addCriterion("recommand_status not in", values, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusBetween(Integer value1, Integer value2) { - addCriterion("recommand_status between", value1, value2, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andRecommandStatusNotBetween(Integer value1, Integer value2) { - addCriterion("recommand_status not between", value1, value2, "recommandStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusIsNull() { - addCriterion("verify_status is null"); - return (Criteria) this; - } - - public Criteria andVerifyStatusIsNotNull() { - addCriterion("verify_status is not null"); - return (Criteria) this; - } - - public Criteria andVerifyStatusEqualTo(Integer value) { - addCriterion("verify_status =", value, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusNotEqualTo(Integer value) { - addCriterion("verify_status <>", value, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusGreaterThan(Integer value) { - addCriterion("verify_status >", value, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("verify_status >=", value, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusLessThan(Integer value) { - addCriterion("verify_status <", value, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusLessThanOrEqualTo(Integer value) { - addCriterion("verify_status <=", value, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusIn(List values) { - addCriterion("verify_status in", values, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusNotIn(List values) { - addCriterion("verify_status not in", values, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusBetween(Integer value1, Integer value2) { - addCriterion("verify_status between", value1, value2, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andVerifyStatusNotBetween(Integer value1, Integer value2) { - addCriterion("verify_status not between", value1, value2, "verifyStatus"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSaleIsNull() { - addCriterion("sale is null"); - return (Criteria) this; - } - - public Criteria andSaleIsNotNull() { - addCriterion("sale is not null"); - return (Criteria) this; - } - - public Criteria andSaleEqualTo(Integer value) { - addCriterion("sale =", value, "sale"); - return (Criteria) this; - } - - public Criteria andSaleNotEqualTo(Integer value) { - addCriterion("sale <>", value, "sale"); - return (Criteria) this; - } - - public Criteria andSaleGreaterThan(Integer value) { - addCriterion("sale >", value, "sale"); - return (Criteria) this; - } - - public Criteria andSaleGreaterThanOrEqualTo(Integer value) { - addCriterion("sale >=", value, "sale"); - return (Criteria) this; - } - - public Criteria andSaleLessThan(Integer value) { - addCriterion("sale <", value, "sale"); - return (Criteria) this; - } - - public Criteria andSaleLessThanOrEqualTo(Integer value) { - addCriterion("sale <=", value, "sale"); - return (Criteria) this; - } - - public Criteria andSaleIn(List values) { - addCriterion("sale in", values, "sale"); - return (Criteria) this; - } - - public Criteria andSaleNotIn(List values) { - addCriterion("sale not in", values, "sale"); - return (Criteria) this; - } - - public Criteria andSaleBetween(Integer value1, Integer value2) { - addCriterion("sale between", value1, value2, "sale"); - return (Criteria) this; - } - - public Criteria andSaleNotBetween(Integer value1, Integer value2) { - addCriterion("sale not between", value1, value2, "sale"); - return (Criteria) this; - } - - public Criteria andPriceIsNull() { - addCriterion("price is null"); - return (Criteria) this; - } - - public Criteria andPriceIsNotNull() { - addCriterion("price is not null"); - return (Criteria) this; - } - - public Criteria andPriceEqualTo(BigDecimal value) { - addCriterion("price =", value, "price"); - return (Criteria) this; - } - - public Criteria andPriceNotEqualTo(BigDecimal value) { - addCriterion("price <>", value, "price"); - return (Criteria) this; - } - - public Criteria andPriceGreaterThan(BigDecimal value) { - addCriterion("price >", value, "price"); - return (Criteria) this; - } - - public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) { - addCriterion("price >=", value, "price"); - return (Criteria) this; - } - - public Criteria andPriceLessThan(BigDecimal value) { - addCriterion("price <", value, "price"); - return (Criteria) this; - } - - public Criteria andPriceLessThanOrEqualTo(BigDecimal value) { - addCriterion("price <=", value, "price"); - return (Criteria) this; - } - - public Criteria andPriceIn(List values) { - addCriterion("price in", values, "price"); - return (Criteria) this; - } - - public Criteria andPriceNotIn(List values) { - addCriterion("price not in", values, "price"); - return (Criteria) this; - } - - public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("price between", value1, value2, "price"); - return (Criteria) this; - } - - public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("price not between", value1, value2, "price"); - return (Criteria) this; - } - - public Criteria andPromotionPriceIsNull() { - addCriterion("promotion_price is null"); - return (Criteria) this; - } - - public Criteria andPromotionPriceIsNotNull() { - addCriterion("promotion_price is not null"); - return (Criteria) this; - } - - public Criteria andPromotionPriceEqualTo(BigDecimal value) { - addCriterion("promotion_price =", value, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceNotEqualTo(BigDecimal value) { - addCriterion("promotion_price <>", value, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceGreaterThan(BigDecimal value) { - addCriterion("promotion_price >", value, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceGreaterThanOrEqualTo(BigDecimal value) { - addCriterion("promotion_price >=", value, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceLessThan(BigDecimal value) { - addCriterion("promotion_price <", value, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceLessThanOrEqualTo(BigDecimal value) { - addCriterion("promotion_price <=", value, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceIn(List values) { - addCriterion("promotion_price in", values, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceNotIn(List values) { - addCriterion("promotion_price not in", values, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("promotion_price between", value1, value2, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andPromotionPriceNotBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("promotion_price not between", value1, value2, "promotionPrice"); - return (Criteria) this; - } - - public Criteria andGiftGrowthIsNull() { - addCriterion("gift_growth is null"); - return (Criteria) this; - } - - public Criteria andGiftGrowthIsNotNull() { - addCriterion("gift_growth is not null"); - return (Criteria) this; - } - - public Criteria andGiftGrowthEqualTo(Integer value) { - addCriterion("gift_growth =", value, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthNotEqualTo(Integer value) { - addCriterion("gift_growth <>", value, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthGreaterThan(Integer value) { - addCriterion("gift_growth >", value, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthGreaterThanOrEqualTo(Integer value) { - addCriterion("gift_growth >=", value, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthLessThan(Integer value) { - addCriterion("gift_growth <", value, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthLessThanOrEqualTo(Integer value) { - addCriterion("gift_growth <=", value, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthIn(List values) { - addCriterion("gift_growth in", values, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthNotIn(List values) { - addCriterion("gift_growth not in", values, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthBetween(Integer value1, Integer value2) { - addCriterion("gift_growth between", value1, value2, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftGrowthNotBetween(Integer value1, Integer value2) { - addCriterion("gift_growth not between", value1, value2, "giftGrowth"); - return (Criteria) this; - } - - public Criteria andGiftPointIsNull() { - addCriterion("gift_point is null"); - return (Criteria) this; - } - - public Criteria andGiftPointIsNotNull() { - addCriterion("gift_point is not null"); - return (Criteria) this; - } - - public Criteria andGiftPointEqualTo(Integer value) { - addCriterion("gift_point =", value, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointNotEqualTo(Integer value) { - addCriterion("gift_point <>", value, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointGreaterThan(Integer value) { - addCriterion("gift_point >", value, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointGreaterThanOrEqualTo(Integer value) { - addCriterion("gift_point >=", value, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointLessThan(Integer value) { - addCriterion("gift_point <", value, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointLessThanOrEqualTo(Integer value) { - addCriterion("gift_point <=", value, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointIn(List values) { - addCriterion("gift_point in", values, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointNotIn(List values) { - addCriterion("gift_point not in", values, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointBetween(Integer value1, Integer value2) { - addCriterion("gift_point between", value1, value2, "giftPoint"); - return (Criteria) this; - } - - public Criteria andGiftPointNotBetween(Integer value1, Integer value2) { - addCriterion("gift_point not between", value1, value2, "giftPoint"); - return (Criteria) this; - } - - public Criteria andUsePointLimitIsNull() { - addCriterion("use_point_limit is null"); - return (Criteria) this; - } - - public Criteria andUsePointLimitIsNotNull() { - addCriterion("use_point_limit is not null"); - return (Criteria) this; - } - - public Criteria andUsePointLimitEqualTo(Integer value) { - addCriterion("use_point_limit =", value, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitNotEqualTo(Integer value) { - addCriterion("use_point_limit <>", value, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitGreaterThan(Integer value) { - addCriterion("use_point_limit >", value, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitGreaterThanOrEqualTo(Integer value) { - addCriterion("use_point_limit >=", value, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitLessThan(Integer value) { - addCriterion("use_point_limit <", value, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitLessThanOrEqualTo(Integer value) { - addCriterion("use_point_limit <=", value, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitIn(List values) { - addCriterion("use_point_limit in", values, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitNotIn(List values) { - addCriterion("use_point_limit not in", values, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitBetween(Integer value1, Integer value2) { - addCriterion("use_point_limit between", value1, value2, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andUsePointLimitNotBetween(Integer value1, Integer value2) { - addCriterion("use_point_limit not between", value1, value2, "usePointLimit"); - return (Criteria) this; - } - - public Criteria andSubTitleIsNull() { - addCriterion("sub_title is null"); - return (Criteria) this; - } - - public Criteria andSubTitleIsNotNull() { - addCriterion("sub_title is not null"); - return (Criteria) this; - } - - public Criteria andSubTitleEqualTo(String value) { - addCriterion("sub_title =", value, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleNotEqualTo(String value) { - addCriterion("sub_title <>", value, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleGreaterThan(String value) { - addCriterion("sub_title >", value, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleGreaterThanOrEqualTo(String value) { - addCriterion("sub_title >=", value, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleLessThan(String value) { - addCriterion("sub_title <", value, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleLessThanOrEqualTo(String value) { - addCriterion("sub_title <=", value, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleLike(String value) { - addCriterion("sub_title like", value, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleNotLike(String value) { - addCriterion("sub_title not like", value, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleIn(List values) { - addCriterion("sub_title in", values, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleNotIn(List values) { - addCriterion("sub_title not in", values, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleBetween(String value1, String value2) { - addCriterion("sub_title between", value1, value2, "subTitle"); - return (Criteria) this; - } - - public Criteria andSubTitleNotBetween(String value1, String value2) { - addCriterion("sub_title not between", value1, value2, "subTitle"); - return (Criteria) this; - } - - public Criteria andOriginalPriceIsNull() { - addCriterion("original_price is null"); - return (Criteria) this; - } - - public Criteria andOriginalPriceIsNotNull() { - addCriterion("original_price is not null"); - return (Criteria) this; - } - - public Criteria andOriginalPriceEqualTo(BigDecimal value) { - addCriterion("original_price =", value, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceNotEqualTo(BigDecimal value) { - addCriterion("original_price <>", value, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceGreaterThan(BigDecimal value) { - addCriterion("original_price >", value, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceGreaterThanOrEqualTo(BigDecimal value) { - addCriterion("original_price >=", value, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceLessThan(BigDecimal value) { - addCriterion("original_price <", value, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceLessThanOrEqualTo(BigDecimal value) { - addCriterion("original_price <=", value, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceIn(List values) { - addCriterion("original_price in", values, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceNotIn(List values) { - addCriterion("original_price not in", values, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("original_price between", value1, value2, "originalPrice"); - return (Criteria) this; - } - - public Criteria andOriginalPriceNotBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("original_price not between", value1, value2, "originalPrice"); - return (Criteria) this; - } - - public Criteria andStockIsNull() { - addCriterion("stock is null"); - return (Criteria) this; - } - - public Criteria andStockIsNotNull() { - addCriterion("stock is not null"); - return (Criteria) this; - } - - public Criteria andStockEqualTo(Integer value) { - addCriterion("stock =", value, "stock"); - return (Criteria) this; - } - - public Criteria andStockNotEqualTo(Integer value) { - addCriterion("stock <>", value, "stock"); - return (Criteria) this; - } - - public Criteria andStockGreaterThan(Integer value) { - addCriterion("stock >", value, "stock"); - return (Criteria) this; - } - - public Criteria andStockGreaterThanOrEqualTo(Integer value) { - addCriterion("stock >=", value, "stock"); - return (Criteria) this; - } - - public Criteria andStockLessThan(Integer value) { - addCriterion("stock <", value, "stock"); - return (Criteria) this; - } - - public Criteria andStockLessThanOrEqualTo(Integer value) { - addCriterion("stock <=", value, "stock"); - return (Criteria) this; - } - - public Criteria andStockIn(List values) { - addCriterion("stock in", values, "stock"); - return (Criteria) this; - } - - public Criteria andStockNotIn(List values) { - addCriterion("stock not in", values, "stock"); - return (Criteria) this; - } - - public Criteria andStockBetween(Integer value1, Integer value2) { - addCriterion("stock between", value1, value2, "stock"); - return (Criteria) this; - } - - public Criteria andStockNotBetween(Integer value1, Integer value2) { - addCriterion("stock not between", value1, value2, "stock"); - return (Criteria) this; - } - - public Criteria andLowStockIsNull() { - addCriterion("low_stock is null"); - return (Criteria) this; - } - - public Criteria andLowStockIsNotNull() { - addCriterion("low_stock is not null"); - return (Criteria) this; - } - - public Criteria andLowStockEqualTo(Integer value) { - addCriterion("low_stock =", value, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockNotEqualTo(Integer value) { - addCriterion("low_stock <>", value, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockGreaterThan(Integer value) { - addCriterion("low_stock >", value, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockGreaterThanOrEqualTo(Integer value) { - addCriterion("low_stock >=", value, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockLessThan(Integer value) { - addCriterion("low_stock <", value, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockLessThanOrEqualTo(Integer value) { - addCriterion("low_stock <=", value, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockIn(List values) { - addCriterion("low_stock in", values, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockNotIn(List values) { - addCriterion("low_stock not in", values, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockBetween(Integer value1, Integer value2) { - addCriterion("low_stock between", value1, value2, "lowStock"); - return (Criteria) this; - } - - public Criteria andLowStockNotBetween(Integer value1, Integer value2) { - addCriterion("low_stock not between", value1, value2, "lowStock"); - return (Criteria) this; - } - - public Criteria andUnitIsNull() { - addCriterion("unit is null"); - return (Criteria) this; - } - - public Criteria andUnitIsNotNull() { - addCriterion("unit is not null"); - return (Criteria) this; - } - - public Criteria andUnitEqualTo(String value) { - addCriterion("unit =", value, "unit"); - return (Criteria) this; - } - - public Criteria andUnitNotEqualTo(String value) { - addCriterion("unit <>", value, "unit"); - return (Criteria) this; - } - - public Criteria andUnitGreaterThan(String value) { - addCriterion("unit >", value, "unit"); - return (Criteria) this; - } - - public Criteria andUnitGreaterThanOrEqualTo(String value) { - addCriterion("unit >=", value, "unit"); - return (Criteria) this; - } - - public Criteria andUnitLessThan(String value) { - addCriterion("unit <", value, "unit"); - return (Criteria) this; - } - - public Criteria andUnitLessThanOrEqualTo(String value) { - addCriterion("unit <=", value, "unit"); - return (Criteria) this; - } - - public Criteria andUnitLike(String value) { - addCriterion("unit like", value, "unit"); - return (Criteria) this; - } - - public Criteria andUnitNotLike(String value) { - addCriterion("unit not like", value, "unit"); - return (Criteria) this; - } - - public Criteria andUnitIn(List values) { - addCriterion("unit in", values, "unit"); - return (Criteria) this; - } - - public Criteria andUnitNotIn(List values) { - addCriterion("unit not in", values, "unit"); - return (Criteria) this; - } - - public Criteria andUnitBetween(String value1, String value2) { - addCriterion("unit between", value1, value2, "unit"); - return (Criteria) this; - } - - public Criteria andUnitNotBetween(String value1, String value2) { - addCriterion("unit not between", value1, value2, "unit"); - return (Criteria) this; - } - - public Criteria andWeightIsNull() { - addCriterion("weight is null"); - return (Criteria) this; - } - - public Criteria andWeightIsNotNull() { - addCriterion("weight is not null"); - return (Criteria) this; - } - - public Criteria andWeightEqualTo(BigDecimal value) { - addCriterion("weight =", value, "weight"); - return (Criteria) this; - } - - public Criteria andWeightNotEqualTo(BigDecimal value) { - addCriterion("weight <>", value, "weight"); - return (Criteria) this; - } - - public Criteria andWeightGreaterThan(BigDecimal value) { - addCriterion("weight >", value, "weight"); - return (Criteria) this; - } - - public Criteria andWeightGreaterThanOrEqualTo(BigDecimal value) { - addCriterion("weight >=", value, "weight"); - return (Criteria) this; - } - - public Criteria andWeightLessThan(BigDecimal value) { - addCriterion("weight <", value, "weight"); - return (Criteria) this; - } - - public Criteria andWeightLessThanOrEqualTo(BigDecimal value) { - addCriterion("weight <=", value, "weight"); - return (Criteria) this; - } - - public Criteria andWeightIn(List values) { - addCriterion("weight in", values, "weight"); - return (Criteria) this; - } - - public Criteria andWeightNotIn(List values) { - addCriterion("weight not in", values, "weight"); - return (Criteria) this; - } - - public Criteria andWeightBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("weight between", value1, value2, "weight"); - return (Criteria) this; - } - - public Criteria andWeightNotBetween(BigDecimal value1, BigDecimal value2) { - addCriterion("weight not between", value1, value2, "weight"); - return (Criteria) this; - } - - public Criteria andPreviewStatusIsNull() { - addCriterion("preview_status is null"); - return (Criteria) this; - } - - public Criteria andPreviewStatusIsNotNull() { - addCriterion("preview_status is not null"); - return (Criteria) this; - } - - public Criteria andPreviewStatusEqualTo(Integer value) { - addCriterion("preview_status =", value, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusNotEqualTo(Integer value) { - addCriterion("preview_status <>", value, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusGreaterThan(Integer value) { - addCriterion("preview_status >", value, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("preview_status >=", value, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusLessThan(Integer value) { - addCriterion("preview_status <", value, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusLessThanOrEqualTo(Integer value) { - addCriterion("preview_status <=", value, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusIn(List values) { - addCriterion("preview_status in", values, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusNotIn(List values) { - addCriterion("preview_status not in", values, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusBetween(Integer value1, Integer value2) { - addCriterion("preview_status between", value1, value2, "previewStatus"); - return (Criteria) this; - } - - public Criteria andPreviewStatusNotBetween(Integer value1, Integer value2) { - addCriterion("preview_status not between", value1, value2, "previewStatus"); - return (Criteria) this; - } - - public Criteria andServiceIdsIsNull() { - addCriterion("service_ids is null"); - return (Criteria) this; - } - - public Criteria andServiceIdsIsNotNull() { - addCriterion("service_ids is not null"); - return (Criteria) this; - } - - public Criteria andServiceIdsEqualTo(String value) { - addCriterion("service_ids =", value, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsNotEqualTo(String value) { - addCriterion("service_ids <>", value, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsGreaterThan(String value) { - addCriterion("service_ids >", value, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsGreaterThanOrEqualTo(String value) { - addCriterion("service_ids >=", value, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsLessThan(String value) { - addCriterion("service_ids <", value, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsLessThanOrEqualTo(String value) { - addCriterion("service_ids <=", value, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsLike(String value) { - addCriterion("service_ids like", value, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsNotLike(String value) { - addCriterion("service_ids not like", value, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsIn(List values) { - addCriterion("service_ids in", values, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsNotIn(List values) { - addCriterion("service_ids not in", values, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsBetween(String value1, String value2) { - addCriterion("service_ids between", value1, value2, "serviceIds"); - return (Criteria) this; - } - - public Criteria andServiceIdsNotBetween(String value1, String value2) { - addCriterion("service_ids not between", value1, value2, "serviceIds"); - return (Criteria) this; - } - - public Criteria andKeywordsIsNull() { - addCriterion("keywords is null"); - return (Criteria) this; - } - - public Criteria andKeywordsIsNotNull() { - addCriterion("keywords is not null"); - return (Criteria) this; - } - - public Criteria andKeywordsEqualTo(String value) { - addCriterion("keywords =", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsNotEqualTo(String value) { - addCriterion("keywords <>", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsGreaterThan(String value) { - addCriterion("keywords >", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsGreaterThanOrEqualTo(String value) { - addCriterion("keywords >=", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsLessThan(String value) { - addCriterion("keywords <", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsLessThanOrEqualTo(String value) { - addCriterion("keywords <=", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsLike(String value) { - addCriterion("keywords like", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsNotLike(String value) { - addCriterion("keywords not like", value, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsIn(List values) { - addCriterion("keywords in", values, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsNotIn(List values) { - addCriterion("keywords not in", values, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsBetween(String value1, String value2) { - addCriterion("keywords between", value1, value2, "keywords"); - return (Criteria) this; - } - - public Criteria andKeywordsNotBetween(String value1, String value2) { - addCriterion("keywords not between", value1, value2, "keywords"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andAlbumPicsIsNull() { - addCriterion("album_pics is null"); - return (Criteria) this; - } - - public Criteria andAlbumPicsIsNotNull() { - addCriterion("album_pics is not null"); - return (Criteria) this; - } - - public Criteria andAlbumPicsEqualTo(String value) { - addCriterion("album_pics =", value, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsNotEqualTo(String value) { - addCriterion("album_pics <>", value, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsGreaterThan(String value) { - addCriterion("album_pics >", value, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsGreaterThanOrEqualTo(String value) { - addCriterion("album_pics >=", value, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsLessThan(String value) { - addCriterion("album_pics <", value, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsLessThanOrEqualTo(String value) { - addCriterion("album_pics <=", value, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsLike(String value) { - addCriterion("album_pics like", value, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsNotLike(String value) { - addCriterion("album_pics not like", value, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsIn(List values) { - addCriterion("album_pics in", values, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsNotIn(List values) { - addCriterion("album_pics not in", values, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsBetween(String value1, String value2) { - addCriterion("album_pics between", value1, value2, "albumPics"); - return (Criteria) this; - } - - public Criteria andAlbumPicsNotBetween(String value1, String value2) { - addCriterion("album_pics not between", value1, value2, "albumPics"); - return (Criteria) this; - } - - public Criteria andDetailTitleIsNull() { - addCriterion("detail_title is null"); - return (Criteria) this; - } - - public Criteria andDetailTitleIsNotNull() { - addCriterion("detail_title is not null"); - return (Criteria) this; - } - - public Criteria andDetailTitleEqualTo(String value) { - addCriterion("detail_title =", value, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleNotEqualTo(String value) { - addCriterion("detail_title <>", value, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleGreaterThan(String value) { - addCriterion("detail_title >", value, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleGreaterThanOrEqualTo(String value) { - addCriterion("detail_title >=", value, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleLessThan(String value) { - addCriterion("detail_title <", value, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleLessThanOrEqualTo(String value) { - addCriterion("detail_title <=", value, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleLike(String value) { - addCriterion("detail_title like", value, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleNotLike(String value) { - addCriterion("detail_title not like", value, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleIn(List values) { - addCriterion("detail_title in", values, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleNotIn(List values) { - addCriterion("detail_title not in", values, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleBetween(String value1, String value2) { - addCriterion("detail_title between", value1, value2, "detailTitle"); - return (Criteria) this; - } - - public Criteria andDetailTitleNotBetween(String value1, String value2) { - addCriterion("detail_title not between", value1, value2, "detailTitle"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeIsNull() { - addCriterion("promotion_start_time is null"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeIsNotNull() { - addCriterion("promotion_start_time is not null"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeEqualTo(Date value) { - addCriterion("promotion_start_time =", value, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeNotEqualTo(Date value) { - addCriterion("promotion_start_time <>", value, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeGreaterThan(Date value) { - addCriterion("promotion_start_time >", value, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeGreaterThanOrEqualTo(Date value) { - addCriterion("promotion_start_time >=", value, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeLessThan(Date value) { - addCriterion("promotion_start_time <", value, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeLessThanOrEqualTo(Date value) { - addCriterion("promotion_start_time <=", value, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeIn(List values) { - addCriterion("promotion_start_time in", values, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeNotIn(List values) { - addCriterion("promotion_start_time not in", values, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeBetween(Date value1, Date value2) { - addCriterion("promotion_start_time between", value1, value2, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionStartTimeNotBetween(Date value1, Date value2) { - addCriterion("promotion_start_time not between", value1, value2, "promotionStartTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeIsNull() { - addCriterion("promotion_end_time is null"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeIsNotNull() { - addCriterion("promotion_end_time is not null"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeEqualTo(Date value) { - addCriterion("promotion_end_time =", value, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeNotEqualTo(Date value) { - addCriterion("promotion_end_time <>", value, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeGreaterThan(Date value) { - addCriterion("promotion_end_time >", value, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeGreaterThanOrEqualTo(Date value) { - addCriterion("promotion_end_time >=", value, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeLessThan(Date value) { - addCriterion("promotion_end_time <", value, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeLessThanOrEqualTo(Date value) { - addCriterion("promotion_end_time <=", value, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeIn(List values) { - addCriterion("promotion_end_time in", values, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeNotIn(List values) { - addCriterion("promotion_end_time not in", values, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeBetween(Date value1, Date value2) { - addCriterion("promotion_end_time between", value1, value2, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionEndTimeNotBetween(Date value1, Date value2) { - addCriterion("promotion_end_time not between", value1, value2, "promotionEndTime"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitIsNull() { - addCriterion("promotion_per_limit is null"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitIsNotNull() { - addCriterion("promotion_per_limit is not null"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitEqualTo(Integer value) { - addCriterion("promotion_per_limit =", value, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitNotEqualTo(Integer value) { - addCriterion("promotion_per_limit <>", value, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitGreaterThan(Integer value) { - addCriterion("promotion_per_limit >", value, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitGreaterThanOrEqualTo(Integer value) { - addCriterion("promotion_per_limit >=", value, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitLessThan(Integer value) { - addCriterion("promotion_per_limit <", value, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitLessThanOrEqualTo(Integer value) { - addCriterion("promotion_per_limit <=", value, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitIn(List values) { - addCriterion("promotion_per_limit in", values, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitNotIn(List values) { - addCriterion("promotion_per_limit not in", values, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitBetween(Integer value1, Integer value2) { - addCriterion("promotion_per_limit between", value1, value2, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionPerLimitNotBetween(Integer value1, Integer value2) { - addCriterion("promotion_per_limit not between", value1, value2, "promotionPerLimit"); - return (Criteria) this; - } - - public Criteria andPromotionTypeIsNull() { - addCriterion("promotion_type is null"); - return (Criteria) this; - } - - public Criteria andPromotionTypeIsNotNull() { - addCriterion("promotion_type is not null"); - return (Criteria) this; - } - - public Criteria andPromotionTypeEqualTo(Integer value) { - addCriterion("promotion_type =", value, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeNotEqualTo(Integer value) { - addCriterion("promotion_type <>", value, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeGreaterThan(Integer value) { - addCriterion("promotion_type >", value, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("promotion_type >=", value, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeLessThan(Integer value) { - addCriterion("promotion_type <", value, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeLessThanOrEqualTo(Integer value) { - addCriterion("promotion_type <=", value, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeIn(List values) { - addCriterion("promotion_type in", values, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeNotIn(List values) { - addCriterion("promotion_type not in", values, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeBetween(Integer value1, Integer value2) { - addCriterion("promotion_type between", value1, value2, "promotionType"); - return (Criteria) this; - } - - public Criteria andPromotionTypeNotBetween(Integer value1, Integer value2) { - addCriterion("promotion_type not between", value1, value2, "promotionType"); - return (Criteria) this; - } - - public Criteria andBrandNameIsNull() { - addCriterion("brand_name is null"); - return (Criteria) this; - } - - public Criteria andBrandNameIsNotNull() { - addCriterion("brand_name is not null"); - return (Criteria) this; - } - - public Criteria andBrandNameEqualTo(String value) { - addCriterion("brand_name =", value, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameNotEqualTo(String value) { - addCriterion("brand_name <>", value, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameGreaterThan(String value) { - addCriterion("brand_name >", value, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameGreaterThanOrEqualTo(String value) { - addCriterion("brand_name >=", value, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameLessThan(String value) { - addCriterion("brand_name <", value, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameLessThanOrEqualTo(String value) { - addCriterion("brand_name <=", value, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameLike(String value) { - addCriterion("brand_name like", value, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameNotLike(String value) { - addCriterion("brand_name not like", value, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameIn(List values) { - addCriterion("brand_name in", values, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameNotIn(List values) { - addCriterion("brand_name not in", values, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameBetween(String value1, String value2) { - addCriterion("brand_name between", value1, value2, "brandName"); - return (Criteria) this; - } - - public Criteria andBrandNameNotBetween(String value1, String value2) { - addCriterion("brand_name not between", value1, value2, "brandName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameIsNull() { - addCriterion("product_category_name is null"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameIsNotNull() { - addCriterion("product_category_name is not null"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameEqualTo(String value) { - addCriterion("product_category_name =", value, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameNotEqualTo(String value) { - addCriterion("product_category_name <>", value, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameGreaterThan(String value) { - addCriterion("product_category_name >", value, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameGreaterThanOrEqualTo(String value) { - addCriterion("product_category_name >=", value, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameLessThan(String value) { - addCriterion("product_category_name <", value, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameLessThanOrEqualTo(String value) { - addCriterion("product_category_name <=", value, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameLike(String value) { - addCriterion("product_category_name like", value, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameNotLike(String value) { - addCriterion("product_category_name not like", value, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameIn(List values) { - addCriterion("product_category_name in", values, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameNotIn(List values) { - addCriterion("product_category_name not in", values, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameBetween(String value1, String value2) { - addCriterion("product_category_name between", value1, value2, "productCategoryName"); - return (Criteria) this; - } - - public Criteria andProductCategoryNameNotBetween(String value1, String value2) { - addCriterion("product_category_name not between", value1, value2, "productCategoryName"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java deleted file mode 100644 index cc5c4647..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdmin.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsAdmin implements Serializable { - private Long id; - - private String username; - - private String password; - - @ApiModelProperty(value = "头像") - private String icon; - - @ApiModelProperty(value = "邮箱") - private String email; - - @ApiModelProperty(value = "昵称") - private String nickName; - - @ApiModelProperty(value = "备注信息") - private String note; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "最后登录时间") - private Date loginTime; - - @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") - private Integer status; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getNote() { - return note; - } - - public void setNote(String note) { - this.note = note; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getLoginTime() { - return loginTime; - } - - public void setLoginTime(Date loginTime) { - this.loginTime = loginTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", username=").append(username); - sb.append(", password=").append(password); - sb.append(", icon=").append(icon); - sb.append(", email=").append(email); - sb.append(", nickName=").append(nickName); - sb.append(", note=").append(note); - sb.append(", createTime=").append(createTime); - sb.append(", loginTime=").append(loginTime); - sb.append(", status=").append(status); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java deleted file mode 100644 index 8544a373..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminExample.java +++ /dev/null @@ -1,861 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsAdminExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andUsernameIsNull() { - addCriterion("username is null"); - return (Criteria) this; - } - - public Criteria andUsernameIsNotNull() { - addCriterion("username is not null"); - return (Criteria) this; - } - - public Criteria andUsernameEqualTo(String value) { - addCriterion("username =", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotEqualTo(String value) { - addCriterion("username <>", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThan(String value) { - addCriterion("username >", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameGreaterThanOrEqualTo(String value) { - addCriterion("username >=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThan(String value) { - addCriterion("username <", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLessThanOrEqualTo(String value) { - addCriterion("username <=", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameLike(String value) { - addCriterion("username like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotLike(String value) { - addCriterion("username not like", value, "username"); - return (Criteria) this; - } - - public Criteria andUsernameIn(List values) { - addCriterion("username in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotIn(List values) { - addCriterion("username not in", values, "username"); - return (Criteria) this; - } - - public Criteria andUsernameBetween(String value1, String value2) { - addCriterion("username between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andUsernameNotBetween(String value1, String value2) { - addCriterion("username not between", value1, value2, "username"); - return (Criteria) this; - } - - public Criteria andPasswordIsNull() { - addCriterion("password is null"); - return (Criteria) this; - } - - public Criteria andPasswordIsNotNull() { - addCriterion("password is not null"); - return (Criteria) this; - } - - public Criteria andPasswordEqualTo(String value) { - addCriterion("password =", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotEqualTo(String value) { - addCriterion("password <>", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThan(String value) { - addCriterion("password >", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordGreaterThanOrEqualTo(String value) { - addCriterion("password >=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThan(String value) { - addCriterion("password <", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLessThanOrEqualTo(String value) { - addCriterion("password <=", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordLike(String value) { - addCriterion("password like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotLike(String value) { - addCriterion("password not like", value, "password"); - return (Criteria) this; - } - - public Criteria andPasswordIn(List values) { - addCriterion("password in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotIn(List values) { - addCriterion("password not in", values, "password"); - return (Criteria) this; - } - - public Criteria andPasswordBetween(String value1, String value2) { - addCriterion("password between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andPasswordNotBetween(String value1, String value2) { - addCriterion("password not between", value1, value2, "password"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andEmailIsNull() { - addCriterion("email is null"); - return (Criteria) this; - } - - public Criteria andEmailIsNotNull() { - addCriterion("email is not null"); - return (Criteria) this; - } - - public Criteria andEmailEqualTo(String value) { - addCriterion("email =", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotEqualTo(String value) { - addCriterion("email <>", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThan(String value) { - addCriterion("email >", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailGreaterThanOrEqualTo(String value) { - addCriterion("email >=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThan(String value) { - addCriterion("email <", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLessThanOrEqualTo(String value) { - addCriterion("email <=", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailLike(String value) { - addCriterion("email like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotLike(String value) { - addCriterion("email not like", value, "email"); - return (Criteria) this; - } - - public Criteria andEmailIn(List values) { - addCriterion("email in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotIn(List values) { - addCriterion("email not in", values, "email"); - return (Criteria) this; - } - - public Criteria andEmailBetween(String value1, String value2) { - addCriterion("email between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andEmailNotBetween(String value1, String value2) { - addCriterion("email not between", value1, value2, "email"); - return (Criteria) this; - } - - public Criteria andNickNameIsNull() { - addCriterion("nick_name is null"); - return (Criteria) this; - } - - public Criteria andNickNameIsNotNull() { - addCriterion("nick_name is not null"); - return (Criteria) this; - } - - public Criteria andNickNameEqualTo(String value) { - addCriterion("nick_name =", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotEqualTo(String value) { - addCriterion("nick_name <>", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThan(String value) { - addCriterion("nick_name >", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameGreaterThanOrEqualTo(String value) { - addCriterion("nick_name >=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThan(String value) { - addCriterion("nick_name <", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLessThanOrEqualTo(String value) { - addCriterion("nick_name <=", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameLike(String value) { - addCriterion("nick_name like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotLike(String value) { - addCriterion("nick_name not like", value, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameIn(List values) { - addCriterion("nick_name in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotIn(List values) { - addCriterion("nick_name not in", values, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameBetween(String value1, String value2) { - addCriterion("nick_name between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNickNameNotBetween(String value1, String value2) { - addCriterion("nick_name not between", value1, value2, "nickName"); - return (Criteria) this; - } - - public Criteria andNoteIsNull() { - addCriterion("note is null"); - return (Criteria) this; - } - - public Criteria andNoteIsNotNull() { - addCriterion("note is not null"); - return (Criteria) this; - } - - public Criteria andNoteEqualTo(String value) { - addCriterion("note =", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotEqualTo(String value) { - addCriterion("note <>", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThan(String value) { - addCriterion("note >", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteGreaterThanOrEqualTo(String value) { - addCriterion("note >=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThan(String value) { - addCriterion("note <", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLessThanOrEqualTo(String value) { - addCriterion("note <=", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteLike(String value) { - addCriterion("note like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotLike(String value) { - addCriterion("note not like", value, "note"); - return (Criteria) this; - } - - public Criteria andNoteIn(List values) { - addCriterion("note in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotIn(List values) { - addCriterion("note not in", values, "note"); - return (Criteria) this; - } - - public Criteria andNoteBetween(String value1, String value2) { - addCriterion("note between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andNoteNotBetween(String value1, String value2) { - addCriterion("note not between", value1, value2, "note"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNull() { - addCriterion("login_time is null"); - return (Criteria) this; - } - - public Criteria andLoginTimeIsNotNull() { - addCriterion("login_time is not null"); - return (Criteria) this; - } - - public Criteria andLoginTimeEqualTo(Date value) { - addCriterion("login_time =", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotEqualTo(Date value) { - addCriterion("login_time <>", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThan(Date value) { - addCriterion("login_time >", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) { - addCriterion("login_time >=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThan(Date value) { - addCriterion("login_time <", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeLessThanOrEqualTo(Date value) { - addCriterion("login_time <=", value, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeIn(List values) { - addCriterion("login_time in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotIn(List values) { - addCriterion("login_time not in", values, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeBetween(Date value1, Date value2) { - addCriterion("login_time between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andLoginTimeNotBetween(Date value1, Date value2) { - addCriterion("login_time not between", value1, value2, "loginTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java deleted file mode 100644 index 47e24db3..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelation.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminPermissionRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long permissionId; - - private Integer type; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", permissionId=").append(permissionId); - sb.append(", type=").append(type); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java deleted file mode 100644 index d4277c7f..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminPermissionRelationExample.java +++ /dev/null @@ -1,440 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminPermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminPermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java deleted file mode 100644 index d0fe31bd..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsAdminRoleRelation implements Serializable { - private Long id; - - private Long adminId; - - private Long roleId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAdminId() { - return adminId; - } - - public void setAdminId(Long adminId) { - this.adminId = adminId; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", adminId=").append(adminId); - sb.append(", roleId=").append(roleId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java deleted file mode 100644 index 7c0894a7..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsAdminRoleRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsAdminRoleRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsAdminRoleRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNull() { - addCriterion("admin_id is null"); - return (Criteria) this; - } - - public Criteria andAdminIdIsNotNull() { - addCriterion("admin_id is not null"); - return (Criteria) this; - } - - public Criteria andAdminIdEqualTo(Long value) { - addCriterion("admin_id =", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotEqualTo(Long value) { - addCriterion("admin_id <>", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThan(Long value) { - addCriterion("admin_id >", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdGreaterThanOrEqualTo(Long value) { - addCriterion("admin_id >=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThan(Long value) { - addCriterion("admin_id <", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdLessThanOrEqualTo(Long value) { - addCriterion("admin_id <=", value, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdIn(List values) { - addCriterion("admin_id in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotIn(List values) { - addCriterion("admin_id not in", values, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdBetween(Long value1, Long value2) { - addCriterion("admin_id between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andAdminIdNotBetween(Long value1, Long value2) { - addCriterion("admin_id not between", value1, value2, "adminId"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java deleted file mode 100644 index 31da29cd..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermission.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsPermission implements Serializable { - private Long id; - - @ApiModelProperty(value = "父级权限id") - private Long pid; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "权限值") - private String value; - - @ApiModelProperty(value = "图标") - private String icon; - - @ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)") - private Integer type; - - @ApiModelProperty(value = "前端资源路径") - private String uri; - - @ApiModelProperty(value = "启用状态;0->禁用;1->启用") - private Integer status; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "排序") - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getPid() { - return pid; - } - - public void setPid(Long pid) { - this.pid = pid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getUri() { - return uri; - } - - public void setUri(String uri) { - this.uri = uri; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", pid=").append(pid); - sb.append(", name=").append(name); - sb.append(", value=").append(value); - sb.append(", icon=").append(icon); - sb.append(", type=").append(type); - sb.append(", uri=").append(uri); - sb.append(", status=").append(status); - sb.append(", createTime=").append(createTime); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java deleted file mode 100644 index a13d1621..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsPermissionExample.java +++ /dev/null @@ -1,841 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsPermissionExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsPermissionExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andPidIsNull() { - addCriterion("pid is null"); - return (Criteria) this; - } - - public Criteria andPidIsNotNull() { - addCriterion("pid is not null"); - return (Criteria) this; - } - - public Criteria andPidEqualTo(Long value) { - addCriterion("pid =", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotEqualTo(Long value) { - addCriterion("pid <>", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThan(Long value) { - addCriterion("pid >", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidGreaterThanOrEqualTo(Long value) { - addCriterion("pid >=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThan(Long value) { - addCriterion("pid <", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidLessThanOrEqualTo(Long value) { - addCriterion("pid <=", value, "pid"); - return (Criteria) this; - } - - public Criteria andPidIn(List values) { - addCriterion("pid in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotIn(List values) { - addCriterion("pid not in", values, "pid"); - return (Criteria) this; - } - - public Criteria andPidBetween(Long value1, Long value2) { - addCriterion("pid between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andPidNotBetween(Long value1, Long value2) { - addCriterion("pid not between", value1, value2, "pid"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andValueIsNull() { - addCriterion("value is null"); - return (Criteria) this; - } - - public Criteria andValueIsNotNull() { - addCriterion("value is not null"); - return (Criteria) this; - } - - public Criteria andValueEqualTo(String value) { - addCriterion("value =", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotEqualTo(String value) { - addCriterion("value <>", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThan(String value) { - addCriterion("value >", value, "value"); - return (Criteria) this; - } - - public Criteria andValueGreaterThanOrEqualTo(String value) { - addCriterion("value >=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThan(String value) { - addCriterion("value <", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLessThanOrEqualTo(String value) { - addCriterion("value <=", value, "value"); - return (Criteria) this; - } - - public Criteria andValueLike(String value) { - addCriterion("value like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueNotLike(String value) { - addCriterion("value not like", value, "value"); - return (Criteria) this; - } - - public Criteria andValueIn(List values) { - addCriterion("value in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueNotIn(List values) { - addCriterion("value not in", values, "value"); - return (Criteria) this; - } - - public Criteria andValueBetween(String value1, String value2) { - addCriterion("value between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andValueNotBetween(String value1, String value2) { - addCriterion("value not between", value1, value2, "value"); - return (Criteria) this; - } - - public Criteria andIconIsNull() { - addCriterion("icon is null"); - return (Criteria) this; - } - - public Criteria andIconIsNotNull() { - addCriterion("icon is not null"); - return (Criteria) this; - } - - public Criteria andIconEqualTo(String value) { - addCriterion("icon =", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotEqualTo(String value) { - addCriterion("icon <>", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThan(String value) { - addCriterion("icon >", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconGreaterThanOrEqualTo(String value) { - addCriterion("icon >=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThan(String value) { - addCriterion("icon <", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLessThanOrEqualTo(String value) { - addCriterion("icon <=", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconLike(String value) { - addCriterion("icon like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotLike(String value) { - addCriterion("icon not like", value, "icon"); - return (Criteria) this; - } - - public Criteria andIconIn(List values) { - addCriterion("icon in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotIn(List values) { - addCriterion("icon not in", values, "icon"); - return (Criteria) this; - } - - public Criteria andIconBetween(String value1, String value2) { - addCriterion("icon between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andIconNotBetween(String value1, String value2) { - addCriterion("icon not between", value1, value2, "icon"); - return (Criteria) this; - } - - public Criteria andTypeIsNull() { - addCriterion("type is null"); - return (Criteria) this; - } - - public Criteria andTypeIsNotNull() { - addCriterion("type is not null"); - return (Criteria) this; - } - - public Criteria andTypeEqualTo(Integer value) { - addCriterion("type =", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotEqualTo(Integer value) { - addCriterion("type <>", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThan(Integer value) { - addCriterion("type >", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeGreaterThanOrEqualTo(Integer value) { - addCriterion("type >=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThan(Integer value) { - addCriterion("type <", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeLessThanOrEqualTo(Integer value) { - addCriterion("type <=", value, "type"); - return (Criteria) this; - } - - public Criteria andTypeIn(List values) { - addCriterion("type in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotIn(List values) { - addCriterion("type not in", values, "type"); - return (Criteria) this; - } - - public Criteria andTypeBetween(Integer value1, Integer value2) { - addCriterion("type between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andTypeNotBetween(Integer value1, Integer value2) { - addCriterion("type not between", value1, value2, "type"); - return (Criteria) this; - } - - public Criteria andUriIsNull() { - addCriterion("uri is null"); - return (Criteria) this; - } - - public Criteria andUriIsNotNull() { - addCriterion("uri is not null"); - return (Criteria) this; - } - - public Criteria andUriEqualTo(String value) { - addCriterion("uri =", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotEqualTo(String value) { - addCriterion("uri <>", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThan(String value) { - addCriterion("uri >", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriGreaterThanOrEqualTo(String value) { - addCriterion("uri >=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThan(String value) { - addCriterion("uri <", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLessThanOrEqualTo(String value) { - addCriterion("uri <=", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriLike(String value) { - addCriterion("uri like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotLike(String value) { - addCriterion("uri not like", value, "uri"); - return (Criteria) this; - } - - public Criteria andUriIn(List values) { - addCriterion("uri in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotIn(List values) { - addCriterion("uri not in", values, "uri"); - return (Criteria) this; - } - - public Criteria andUriBetween(String value1, String value2) { - addCriterion("uri between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andUriNotBetween(String value1, String value2) { - addCriterion("uri not between", value1, value2, "uri"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java deleted file mode 100644 index 2118d6b6..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRole.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import java.util.Date; - -public class UmsRole implements Serializable { - private Long id; - - @ApiModelProperty(value = "名称") - private String name; - - @ApiModelProperty(value = "描述") - private String description; - - @ApiModelProperty(value = "后台用户数量") - private Integer adminCount; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "启用状态:0->禁用;1->启用") - private Integer status; - - private Integer sort; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Integer getAdminCount() { - return adminCount; - } - - public void setAdminCount(Integer adminCount) { - this.adminCount = adminCount; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", name=").append(name); - sb.append(", description=").append(description); - sb.append(", adminCount=").append(adminCount); - sb.append(", createTime=").append(createTime); - sb.append(", status=").append(status); - sb.append(", sort=").append(sort); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java deleted file mode 100644 index a5986ca5..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRoleExample.java +++ /dev/null @@ -1,641 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class UmsRoleExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRoleExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("name is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("name is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("name =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("name <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("name >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("name >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("name <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("name <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("name like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("name not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("name in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("name not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("name between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("name not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNull() { - addCriterion("description is null"); - return (Criteria) this; - } - - public Criteria andDescriptionIsNotNull() { - addCriterion("description is not null"); - return (Criteria) this; - } - - public Criteria andDescriptionEqualTo(String value) { - addCriterion("description =", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotEqualTo(String value) { - addCriterion("description <>", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThan(String value) { - addCriterion("description >", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionGreaterThanOrEqualTo(String value) { - addCriterion("description >=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThan(String value) { - addCriterion("description <", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLessThanOrEqualTo(String value) { - addCriterion("description <=", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionLike(String value) { - addCriterion("description like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotLike(String value) { - addCriterion("description not like", value, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionIn(List values) { - addCriterion("description in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotIn(List values) { - addCriterion("description not in", values, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionBetween(String value1, String value2) { - addCriterion("description between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andDescriptionNotBetween(String value1, String value2) { - addCriterion("description not between", value1, value2, "description"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNull() { - addCriterion("admin_count is null"); - return (Criteria) this; - } - - public Criteria andAdminCountIsNotNull() { - addCriterion("admin_count is not null"); - return (Criteria) this; - } - - public Criteria andAdminCountEqualTo(Integer value) { - addCriterion("admin_count =", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotEqualTo(Integer value) { - addCriterion("admin_count <>", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThan(Integer value) { - addCriterion("admin_count >", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) { - addCriterion("admin_count >=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThan(Integer value) { - addCriterion("admin_count <", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountLessThanOrEqualTo(Integer value) { - addCriterion("admin_count <=", value, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountIn(List values) { - addCriterion("admin_count in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotIn(List values) { - addCriterion("admin_count not in", values, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountBetween(Integer value1, Integer value2) { - addCriterion("admin_count between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andAdminCountNotBetween(Integer value1, Integer value2) { - addCriterion("admin_count not between", value1, value2, "adminCount"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(Integer value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(Integer value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(Integer value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(Integer value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(Integer value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(Integer value1, Integer value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(Integer value1, Integer value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andSortIsNull() { - addCriterion("sort is null"); - return (Criteria) this; - } - - public Criteria andSortIsNotNull() { - addCriterion("sort is not null"); - return (Criteria) this; - } - - public Criteria andSortEqualTo(Integer value) { - addCriterion("sort =", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotEqualTo(Integer value) { - addCriterion("sort <>", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThan(Integer value) { - addCriterion("sort >", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortGreaterThanOrEqualTo(Integer value) { - addCriterion("sort >=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThan(Integer value) { - addCriterion("sort <", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortLessThanOrEqualTo(Integer value) { - addCriterion("sort <=", value, "sort"); - return (Criteria) this; - } - - public Criteria andSortIn(List values) { - addCriterion("sort in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotIn(List values) { - addCriterion("sort not in", values, "sort"); - return (Criteria) this; - } - - public Criteria andSortBetween(Integer value1, Integer value2) { - addCriterion("sort between", value1, value2, "sort"); - return (Criteria) this; - } - - public Criteria andSortNotBetween(Integer value1, Integer value2) { - addCriterion("sort not between", value1, value2, "sort"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java deleted file mode 100644 index ca6b9041..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelation.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; - -public class UmsRolePermissionRelation implements Serializable { - private Long id; - - private Long roleId; - - private Long permissionId; - - private static final long serialVersionUID = 1L; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getRoleId() { - return roleId; - } - - public void setRoleId(Long roleId) { - this.roleId = roleId; - } - - public Long getPermissionId() { - return permissionId; - } - - public void setPermissionId(Long permissionId) { - this.permissionId = permissionId; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(getClass().getSimpleName()); - sb.append(" ["); - sb.append("Hash = ").append(hashCode()); - sb.append(", id=").append(id); - sb.append(", roleId=").append(roleId); - sb.append(", permissionId=").append(permissionId); - sb.append(", serialVersionUID=").append(serialVersionUID); - sb.append("]"); - return sb.toString(); - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java b/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java deleted file mode 100644 index 90e40573..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/mbg/model/UmsRolePermissionRelationExample.java +++ /dev/null @@ -1,380 +0,0 @@ -package com.macro.mall.tiny.mbg.model; - -import java.util.ArrayList; -import java.util.List; - -public class UmsRolePermissionRelationExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public UmsRolePermissionRelationExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(Long value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(Long value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(Long value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(Long value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(Long value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(Long value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(Long value1, Long value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(Long value1, Long value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNull() { - addCriterion("role_id is null"); - return (Criteria) this; - } - - public Criteria andRoleIdIsNotNull() { - addCriterion("role_id is not null"); - return (Criteria) this; - } - - public Criteria andRoleIdEqualTo(Long value) { - addCriterion("role_id =", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotEqualTo(Long value) { - addCriterion("role_id <>", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThan(Long value) { - addCriterion("role_id >", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdGreaterThanOrEqualTo(Long value) { - addCriterion("role_id >=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThan(Long value) { - addCriterion("role_id <", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdLessThanOrEqualTo(Long value) { - addCriterion("role_id <=", value, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdIn(List values) { - addCriterion("role_id in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotIn(List values) { - addCriterion("role_id not in", values, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdBetween(Long value1, Long value2) { - addCriterion("role_id between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andRoleIdNotBetween(Long value1, Long value2) { - addCriterion("role_id not between", value1, value2, "roleId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNull() { - addCriterion("permission_id is null"); - return (Criteria) this; - } - - public Criteria andPermissionIdIsNotNull() { - addCriterion("permission_id is not null"); - return (Criteria) this; - } - - public Criteria andPermissionIdEqualTo(Long value) { - addCriterion("permission_id =", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotEqualTo(Long value) { - addCriterion("permission_id <>", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThan(Long value) { - addCriterion("permission_id >", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) { - addCriterion("permission_id >=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThan(Long value) { - addCriterion("permission_id <", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdLessThanOrEqualTo(Long value) { - addCriterion("permission_id <=", value, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdIn(List values) { - addCriterion("permission_id in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotIn(List values) { - addCriterion("permission_id not in", values, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdBetween(Long value1, Long value2) { - addCriterion("permission_id between", value1, value2, "permissionId"); - return (Criteria) this; - } - - public Criteria andPermissionIdNotBetween(Long value1, Long value2) { - addCriterion("permission_id not between", value1, value2, "permissionId"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java index 3a8e6839..88ad394b 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProduct.java @@ -1,19 +1,27 @@ package com.macro.mall.tiny.nosql.elasticsearch.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; +import org.springframework.data.elasticsearch.annotations.Setting; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; /** - * 搜索中的商品信息 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品的信息 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ -@Document(indexName = "pms", type = "product",shards = 1,replicas = 0) +@Data +@EqualsAndHashCode +@Document(indexName = "pms") +@Setting(shards = 1,replicas = 0) public class EsProduct implements Serializable { private static final long serialVersionUID = -1L; @Id @@ -42,148 +50,4 @@ public class EsProduct implements Serializable { private Integer sort; @Field(type =FieldType.Nested) private List attrValueList; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getProductSn() { - return productSn; - } - - public void setProductSn(String productSn) { - this.productSn = productSn; - } - - public Long getBrandId() { - return brandId; - } - - public void setBrandId(Long brandId) { - this.brandId = brandId; - } - - public String getBrandName() { - return brandName; - } - - public void setBrandName(String brandName) { - this.brandName = brandName; - } - - public Long getProductCategoryId() { - return productCategoryId; - } - - public void setProductCategoryId(Long productCategoryId) { - this.productCategoryId = productCategoryId; - } - - public String getProductCategoryName() { - return productCategoryName; - } - - public void setProductCategoryName(String productCategoryName) { - this.productCategoryName = productCategoryName; - } - - public String getPic() { - return pic; - } - - public void setPic(String pic) { - this.pic = pic; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSubTitle() { - return subTitle; - } - - public void setSubTitle(String subTitle) { - this.subTitle = subTitle; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public Integer getSale() { - return sale; - } - - public void setSale(Integer sale) { - this.sale = sale; - } - - public Integer getNewStatus() { - return newStatus; - } - - public void setNewStatus(Integer newStatus) { - this.newStatus = newStatus; - } - - public Integer getRecommandStatus() { - return recommandStatus; - } - - public void setRecommandStatus(Integer recommandStatus) { - this.recommandStatus = recommandStatus; - } - - public Integer getStock() { - return stock; - } - - public void setStock(Integer stock) { - this.stock = stock; - } - - public Integer getPromotionType() { - return promotionType; - } - - public void setPromotionType(Integer promotionType) { - this.promotionType = promotionType; - } - - public Integer getSort() { - return sort; - } - - public void setSort(Integer sort) { - this.sort = sort; - } - - public List getAttrValueList() { - return attrValueList; - } - - public void setAttrValueList(List attrValueList) { - this.attrValueList = attrValueList; - } - - public String getKeywords() { - return keywords; - } - - public void setKeywords(String keywords) { - this.keywords = keywords; - } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java index 676f6e23..ab95faa6 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/document/EsProductAttributeValue.java @@ -1,14 +1,20 @@ package com.macro.mall.tiny.nosql.elasticsearch.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; import java.io.Serializable; /** - * 搜索中的商品属性信息 - * Created by macro on 2018/6/27. + * @auther macrozheng + * @description 搜索商品的属性信息 + * @date 2018/6/27 + * @github https://github.com/macrozheng */ +@Data +@EqualsAndHashCode public class EsProductAttributeValue implements Serializable { private static final long serialVersionUID = 1L; private Long id; @@ -21,43 +27,4 @@ public class EsProductAttributeValue implements Serializable { //属性名称 @Field(type=FieldType.Keyword) private String name; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getProductAttributeId() { - return productAttributeId; - } - - public void setProductAttributeId(Long productAttributeId) { - this.productAttributeId = productAttributeId; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java index d874dd7f..21430576 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/elasticsearch/repository/EsProductRepository.java @@ -6,8 +6,10 @@ import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; /** - * 商品ES操作类 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 商品ES操作类 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductRepository extends ElasticsearchRepository { /** diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java index 61fbe867..4b9c99f6 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/mongodb/document/MemberReadHistory.java @@ -1,5 +1,7 @@ package com.macro.mall.tiny.nosql.mongodb.document; +import lombok.Data; +import lombok.EqualsAndHashCode; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; @@ -7,9 +9,13 @@ import java.util.Date; /** - * 用户商品浏览历史记录 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 用户商品浏览历史记录 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ +@Data +@EqualsAndHashCode @Document public class MemberReadHistory { @Id @@ -25,84 +31,4 @@ public class MemberReadHistory { private String productSubTitle; private String productPrice; private Date createTime; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public Long getMemberId() { - return memberId; - } - - public void setMemberId(Long memberId) { - this.memberId = memberId; - } - - public String getMemberNickname() { - return memberNickname; - } - - public void setMemberNickname(String memberNickname) { - this.memberNickname = memberNickname; - } - - public String getMemberIcon() { - return memberIcon; - } - - public void setMemberIcon(String memberIcon) { - this.memberIcon = memberIcon; - } - - public Long getProductId() { - return productId; - } - - public void setProductId(Long productId) { - this.productId = productId; - } - - public String getProductName() { - return productName; - } - - public void setProductName(String productName) { - this.productName = productName; - } - - public String getProductPic() { - return productPic; - } - - public void setProductPic(String productPic) { - this.productPic = productPic; - } - - public String getProductSubTitle() { - return productSubTitle; - } - - public void setProductSubTitle(String productSubTitle) { - this.productSubTitle = productSubTitle; - } - - public String getProductPrice() { - return productPrice; - } - - public void setProductPrice(String productPrice) { - this.productPrice = productPrice; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java index 10424bc2..229e10e8 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/nosql/mongodb/repository/MemberReadHistoryRepository.java @@ -7,8 +7,10 @@ import java.util.List; /** - * 会员商品浏览历史Repository - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员商品浏览历史Repository + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface MemberReadHistoryRepository extends MongoRepository { /** diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/EsProductService.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/EsProductService.java index f2c15434..ebb9e313 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/EsProductService.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/EsProductService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 商品搜索管理Service - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 商品搜索管理Service + * @date 2018/6/19 + * @github https://github.com/macrozheng */ public interface EsProductService { /** diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java index b81903b5..45159dc7 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/MemberReadHistoryService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * 会员浏览记录管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员浏览记录管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface MemberReadHistoryService { /** diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java index dc28b2a2..0ac7bcf7 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/OmsPortalOrderService.java @@ -5,8 +5,10 @@ import org.springframework.transaction.annotation.Transactional; /** - * 前台订单管理Service - * Created by macro on 2018/8/30. + * @auther macrozheng + * @description 前台订单管理Service + * @date 2018/8/30 + * @github https://github.com/macrozheng */ public interface OmsPortalOrderService { diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/OssService.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/OssService.java deleted file mode 100644 index 89fb49c2..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/OssService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.macro.mall.tiny.service; - -import com.macro.mall.tiny.dto.OssCallbackResult; -import com.macro.mall.tiny.dto.OssPolicyResult; - -import javax.servlet.http.HttpServletRequest; - -/** - * oss上传管理Service - * Created by macro on 2018/5/17. - */ -public interface OssService { - /** - * oss上传策略生成 - */ - OssPolicyResult policy(); - - /** - * oss上传成功回调 - */ - OssCallbackResult callback(HttpServletRequest request); -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java index 7171412b..17d3b94e 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/PmsBrandService.java @@ -6,8 +6,10 @@ import java.util.List; /** - * PmsBrandService - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService + * @date 2019/4/19 + * @github https://github.com/macrozheng */ public interface PmsBrandService { List listAllBrand(); diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/RedisService.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/RedisService.java index 191ab73b..370c456c 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/RedisService.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/RedisService.java @@ -1,35 +1,184 @@ package com.macro.mall.tiny.service; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** - * redis操作Service, - * 对象和数组都以json形式进行存储 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作Service + * @date 2020/3/3 + * @github https://github.com/macrozheng */ public interface RedisService { + + /** + * 保存属性 + */ + void set(String key, Object value, long time); + + /** + * 保存属性 + */ + void set(String key, Object value); + + /** + * 获取属性 + */ + Object get(String key); + + /** + * 删除属性 + */ + Boolean del(String key); + + /** + * 批量删除属性 + */ + Long del(List keys); + + /** + * 设置过期时间 + */ + Boolean expire(String key, long time); + + /** + * 获取过期时间 + */ + Long getExpire(String key); + + /** + * 判断是否有该属性 + */ + Boolean hasKey(String key); + + /** + * 按delta递增 + */ + Long incr(String key, long delta); + + /** + * 按delta递减 + */ + Long decr(String key, long delta); + + /** + * 获取Hash结构中的属性 + */ + Object hGet(String key, String hashKey); + + /** + * 向Hash结构中放入一个属性 + */ + Boolean hSet(String key, String hashKey, Object value, long time); + + /** + * 向Hash结构中放入一个属性 + */ + void hSet(String key, String hashKey, Object value); + + /** + * 直接获取整个Hash结构 + */ + Map hGetAll(String key); + /** - * 存储数据 + * 直接设置整个Hash结构 */ - void set(String key, String value); + Boolean hSetAll(String key, Map map, long time); /** - * 获取数据 + * 直接设置整个Hash结构 */ - String get(String key); + void hSetAll(String key, Map map); /** - * 设置超期时间 + * 删除Hash结构中的属性 */ - boolean expire(String key, long expire); + void hDel(String key, Object... hashKey); /** - * 删除数据 + * 判断Hash结构中是否有该属性 */ - void remove(String key); + Boolean hHasKey(String key, String hashKey); /** - * 自增操作 - * @param delta 自增步长 + * Hash结构中属性递增 */ - Long increment(String key, long delta); + Long hIncr(String key, String hashKey, Long delta); -} + /** + * Hash结构中属性递减 + */ + Long hDecr(String key, String hashKey, Long delta); + + /** + * 获取Set结构 + */ + Set sMembers(String key); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, Object... values); + + /** + * 向Set结构中添加属性 + */ + Long sAdd(String key, long time, Object... values); + + /** + * 是否为Set中的属性 + */ + Boolean sIsMember(String key, Object value); + + /** + * 获取Set结构的长度 + */ + Long sSize(String key); + + /** + * 删除Set结构中的属性 + */ + Long sRemove(String key, Object... values); + + /** + * 获取List结构中的属性 + */ + List lRange(String key, long start, long end); + + /** + * 获取List结构的长度 + */ + Long lSize(String key); + + /** + * 根据索引获取List中的属性 + */ + Object lIndex(String key, long index); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value); + + /** + * 向List结构中添加属性 + */ + Long lPush(String key, Object value, long time); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Object... values); + + /** + * 向List结构中批量添加属性 + */ + Long lPushAll(String key, Long time, Object... values); + + /** + * 从List结构中移除属性 + */ + Long lRemove(String key, long count, Object value); +} \ No newline at end of file diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java index 08a9d539..5180e8e9 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/UmsAdminService.java @@ -1,35 +1,29 @@ package com.macro.mall.tiny.service; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import java.util.List; /** - * 后台管理员Service - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service + * @date 2020/10/15 + * @github https://github.com/macrozheng */ public interface UmsAdminService { /** - * 根据用户名获取后台管理员 + * 根据用户名获取用户信息 */ - UmsAdmin getAdminByUsername(String username); + AdminUserDetails getAdminByUsername(String username); /** - * 注册功能 + * 获取所以权限列表 */ - UmsAdmin register(UmsAdmin umsAdminParam); + List getResourceList(); /** - * 登录功能 - * @param username 用户名 - * @param password 密码 - * @return 生成的JWT的token + * 用户名密码登录 */ String login(String username, String password); - - /** - * 获取用户所有权限(包括角色权限和+-权限) - */ - List getPermissionList(Long adminId); } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java index f9fd8ac9..8cf694d3 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/UmsMemberService.java @@ -3,8 +3,10 @@ import com.macro.mall.tiny.common.api.CommonResult; /** - * 会员管理Service - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service + * @date 2018/8/3 + * @github https://github.com/macrozheng */ public interface UmsMemberService { diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java index 44939caa..98891874 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/EsProductServiceImpl.java @@ -19,8 +19,10 @@ /** - * 商品搜索管理Service实现类 - * Created by macro on 2018/6/19. + * @auther macrozheng + * @description 搜索商品管理Service实现类 + * @date 2018/6/19 + * @github https://github.com/macrozheng */ @Service public class EsProductServiceImpl implements EsProductService { @@ -29,7 +31,6 @@ public class EsProductServiceImpl implements EsProductService { private EsProductDao productDao; @Autowired private EsProductRepository productRepository; - @Override public int importAll() { List esProductList = productDao.getAllEsProductList(null); diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java index 977a331e..1dba57c7 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/MemberReadHistoryServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * 会员浏览记录管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员浏览记录管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class MemberReadHistoryServiceImpl implements MemberReadHistoryService { diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java index e2ccf246..f8ff5323 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/OmsPortalOrderServiceImpl.java @@ -10,8 +10,10 @@ import org.springframework.stereotype.Service; /** - * 前台订单管理Service - * Created by macro on 2018/8/30. + * @auther macrozheng + * @description 前台订单管理Service + * @date 2018/8/30 + * @github https://github.com/macrozheng */ @Service public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/OssServiceImpl.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/OssServiceImpl.java deleted file mode 100644 index ba042e02..00000000 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/OssServiceImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.macro.mall.tiny.service.impl; - -import cn.hutool.json.JSONUtil; -import com.aliyun.oss.OSSClient; -import com.aliyun.oss.common.utils.BinaryUtil; -import com.aliyun.oss.model.MatchMode; -import com.aliyun.oss.model.PolicyConditions; -import com.macro.mall.tiny.dto.OssCallbackParam; -import com.macro.mall.tiny.dto.OssCallbackResult; -import com.macro.mall.tiny.dto.OssPolicyResult; -import com.macro.mall.tiny.service.OssService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -import javax.servlet.http.HttpServletRequest; -import java.text.SimpleDateFormat; -import java.util.Date; - -/** - * oss上传管理Service实现类 - * Created by macro on 2018/5/17. - */ -@Service -public class OssServiceImpl implements OssService { - - private static final Logger LOGGER = LoggerFactory.getLogger(OssServiceImpl.class); - @Value("${aliyun.oss.policy.expire}") - private int ALIYUN_OSS_EXPIRE; - @Value("${aliyun.oss.maxSize}") - private int ALIYUN_OSS_MAX_SIZE; - @Value("${aliyun.oss.callback}") - private String ALIYUN_OSS_CALLBACK; - @Value("${aliyun.oss.bucketName}") - private String ALIYUN_OSS_BUCKET_NAME; - @Value("${aliyun.oss.endpoint}") - private String ALIYUN_OSS_ENDPOINT; - @Value("${aliyun.oss.dir.prefix}") - private String ALIYUN_OSS_DIR_PREFIX; - - @Autowired - private OSSClient ossClient; - - /** - * 签名生成 - */ - @Override - public OssPolicyResult policy() { - OssPolicyResult result = new OssPolicyResult(); - // 存储目录 - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); - String dir = ALIYUN_OSS_DIR_PREFIX+sdf.format(new Date()); - // 签名有效期 - long expireEndTime = System.currentTimeMillis() + ALIYUN_OSS_EXPIRE * 1000; - Date expiration = new Date(expireEndTime); - // 文件大小 - long maxSize = ALIYUN_OSS_MAX_SIZE * 1024 * 1024; - // 回调 - OssCallbackParam callback = new OssCallbackParam(); - callback.setCallbackUrl(ALIYUN_OSS_CALLBACK); - callback.setCallbackBody("filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}"); - callback.setCallbackBodyType("application/x-www-form-urlencoded"); - // 提交节点 - String action = "http://" + ALIYUN_OSS_BUCKET_NAME + "." + ALIYUN_OSS_ENDPOINT; - try { - PolicyConditions policyConds = new PolicyConditions(); - policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, maxSize); - policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir); - String postPolicy = ossClient.generatePostPolicy(expiration, policyConds); - byte[] binaryData = postPolicy.getBytes("utf-8"); - String policy = BinaryUtil.toBase64String(binaryData); - String signature = ossClient.calculatePostSignature(postPolicy); - String callbackData = BinaryUtil.toBase64String(JSONUtil.parse(callback).toString().getBytes("utf-8")); - // 返回结果 - result.setAccessKeyId(ossClient.getCredentialsProvider().getCredentials().getAccessKeyId()); - result.setPolicy(policy); - result.setSignature(signature); - result.setDir(dir); - result.setCallback(callbackData); - result.setHost(action); - } catch (Exception e) { - LOGGER.error("签名生成失败", e); - } - return result; - } - - @Override - public OssCallbackResult callback(HttpServletRequest request) { - OssCallbackResult result= new OssCallbackResult(); - String filename = request.getParameter("filename"); - filename = "http://".concat(ALIYUN_OSS_BUCKET_NAME).concat(".").concat(ALIYUN_OSS_ENDPOINT).concat("/").concat(filename); - result.setFilename(filename); - result.setSize(request.getParameter("size")); - result.setMimeType(request.getParameter("mimeType")); - result.setWidth(request.getParameter("width")); - result.setHeight(request.getParameter("height")); - return result; - } - -} diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java index 2a2b102e..a3e8ac15 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/PmsBrandServiceImpl.java @@ -11,8 +11,10 @@ import java.util.List; /** - * PmsBrandService实现类 - * Created by macro on 2019/4/19. + * @auther macrozheng + * @description PmsBrandService实现类 + * @date 2019/4/19 + * @github https://github.com/macrozheng */ @Service public class PmsBrandServiceImpl implements PmsBrandService { diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java index cb9d7e0c..8ff149fd 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/RedisServiceImpl.java @@ -2,42 +2,200 @@ import com.macro.mall.tiny.service.RedisService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; /** - * redis操作Service的实现类 - * Created by macro on 2018/8/7. + * @auther macrozheng + * @description redis操作实现类 + * @date 2020/3/3 + * @github https://github.com/macrozheng */ @Service public class RedisServiceImpl implements RedisService { @Autowired - private StringRedisTemplate stringRedisTemplate; + private RedisTemplate redisTemplate; @Override - public void set(String key, String value) { - stringRedisTemplate.opsForValue().set(key, value); + public void set(String key, Object value, long time) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } @Override - public String get(String key) { - return stringRedisTemplate.opsForValue().get(key); + public void set(String key, Object value) { + redisTemplate.opsForValue().set(key, value); } @Override - public boolean expire(String key, long expire) { - return stringRedisTemplate.expire(key, expire, TimeUnit.SECONDS); + public Object get(String key) { + return redisTemplate.opsForValue().get(key); } @Override - public void remove(String key) { - stringRedisTemplate.delete(key); + public Boolean del(String key) { + return redisTemplate.delete(key); } @Override - public Long increment(String key, long delta) { - return stringRedisTemplate.opsForValue().increment(key,delta); + public Long del(List keys) { + return redisTemplate.delete(keys); + } + + @Override + public Boolean expire(String key, long time) { + return redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + + @Override + public Long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + @Override + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + @Override + public Long incr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, delta); + } + + @Override + public Long decr(String key, long delta) { + return redisTemplate.opsForValue().increment(key, -delta); + } + + @Override + public Object hGet(String key, String hashKey) { + return redisTemplate.opsForHash().get(key, hashKey); + } + + @Override + public Boolean hSet(String key, String hashKey, Object value, long time) { + redisTemplate.opsForHash().put(key, hashKey, value); + return expire(key, time); + } + + @Override + public void hSet(String key, String hashKey, Object value) { + redisTemplate.opsForHash().put(key, hashKey, value); + } + + @Override + public Map hGetAll(String key) { + return redisTemplate.opsForHash().entries(key); + } + + @Override + public Boolean hSetAll(String key, Map map, long time) { + redisTemplate.opsForHash().putAll(key, map); + return expire(key, time); + } + + @Override + public void hSetAll(String key, Map map) { + redisTemplate.opsForHash().putAll(key, map); + } + + @Override + public void hDel(String key, Object... hashKey) { + redisTemplate.opsForHash().delete(key, hashKey); + } + + @Override + public Boolean hHasKey(String key, String hashKey) { + return redisTemplate.opsForHash().hasKey(key, hashKey); + } + + @Override + public Long hIncr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, delta); + } + + @Override + public Long hDecr(String key, String hashKey, Long delta) { + return redisTemplate.opsForHash().increment(key, hashKey, -delta); + } + + @Override + public Set sMembers(String key) { + return redisTemplate.opsForSet().members(key); + } + + @Override + public Long sAdd(String key, Object... values) { + return redisTemplate.opsForSet().add(key, values); + } + + @Override + public Long sAdd(String key, long time, Object... values) { + Long count = redisTemplate.opsForSet().add(key, values); + expire(key, time); + return count; + } + + @Override + public Boolean sIsMember(String key, Object value) { + return redisTemplate.opsForSet().isMember(key, value); + } + + @Override + public Long sSize(String key) { + return redisTemplate.opsForSet().size(key); + } + + @Override + public Long sRemove(String key, Object... values) { + return redisTemplate.opsForSet().remove(key, values); + } + + @Override + public List lRange(String key, long start, long end) { + return redisTemplate.opsForList().range(key, start, end); + } + + @Override + public Long lSize(String key) { + return redisTemplate.opsForList().size(key); + } + + @Override + public Object lIndex(String key, long index) { + return redisTemplate.opsForList().index(key, index); + } + + @Override + public Long lPush(String key, Object value) { + return redisTemplate.opsForList().rightPush(key, value); + } + + @Override + public Long lPush(String key, Object value, long time) { + Long index = redisTemplate.opsForList().rightPush(key, value); + expire(key, time); + return index; + } + + @Override + public Long lPushAll(String key, Object... values) { + return redisTemplate.opsForList().rightPushAll(key, values); + } + + @Override + public Long lPushAll(String key, Long time, Object... values) { + Long count = redisTemplate.opsForList().rightPushAll(key, values); + expire(key, time); + return count; + } + + @Override + public Long lRemove(String key, long count, Object value) { + return redisTemplate.opsForList().remove(key, count, value); } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java index 4f0a052d..2f3236e1 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/UmsAdminServiceImpl.java @@ -1,87 +1,107 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.collection.CollUtil; import com.macro.mall.tiny.common.utils.JwtTokenUtil; -import com.macro.mall.tiny.dao.UmsAdminRoleRelationDao; -import com.macro.mall.tiny.dto.UmsAdminLoginParam; -import com.macro.mall.tiny.mbg.mapper.UmsAdminMapper; -import com.macro.mall.tiny.mbg.model.UmsAdmin; -import com.macro.mall.tiny.mbg.model.UmsAdminExample; -import com.macro.mall.tiny.mbg.model.UmsPermission; +import com.macro.mall.tiny.domain.AdminUserDetails; +import com.macro.mall.tiny.domain.UmsResource; import com.macro.mall.tiny.service.UmsAdminService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import java.util.Date; +import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** - * UmsAdminService实现类 - * Created by macro on 2018/4/26. + * @auther macrozheng + * @description 后台用户管理Service实现类 + * @date 2020/10/15 + * @github https://github.com/macrozheng */ +@Slf4j @Service public class UmsAdminServiceImpl implements UmsAdminService { - private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class); - @Autowired - private UserDetailsService userDetailsService; + /** + * 存放默认用户信息 + */ + private List adminUserDetailsList = new ArrayList<>(); + /** + * 存放默认资源信息 + */ + private List resourceList = new ArrayList<>(); @Autowired private JwtTokenUtil jwtTokenUtil; @Autowired private PasswordEncoder passwordEncoder; - @Value("${jwt.tokenHead}") - private String tokenHead; - @Autowired - private UmsAdminMapper adminMapper; - @Autowired - private UmsAdminRoleRelationDao adminRoleRelationDao; + @PostConstruct + private void init(){ + adminUserDetailsList.add(AdminUserDetails.builder() + .username("admin") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:create","brand:update","brand:delete","brand:list","brand:listAll")) + .build()); + adminUserDetailsList.add(AdminUserDetails.builder() + .username("macro") + .password(passwordEncoder.encode("123456")) + .authorityList(CollUtil.toList("brand:listAll")) + .build()); + resourceList.add(UmsResource.builder() + .id(1L) + .name("brand:create") + .url("/brand/create") + .build()); + resourceList.add(UmsResource.builder() + .id(2L) + .name("brand:update") + .url("/brand/update/**") + .build()); + resourceList.add(UmsResource.builder() + .id(3L) + .name("brand:delete") + .url("/brand/delete/**") + .build()); + resourceList.add(UmsResource.builder() + .id(4L) + .name("brand:list") + .url("/brand/list") + .build()); + resourceList.add(UmsResource.builder() + .id(5L) + .name("brand:listAll") + .url("/brand/listAll") + .build()); + } @Override - public UmsAdmin getAdminByUsername(String username) { - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(username); - List adminList = adminMapper.selectByExample(example); - if (adminList != null && adminList.size() > 0) { - return adminList.get(0); + public AdminUserDetails getAdminByUsername(String username) { + List findList = adminUserDetailsList.stream().filter(item -> item.getUsername().equals(username)).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(findList)){ + return findList.get(0); } return null; } @Override - public UmsAdmin register(UmsAdmin umsAdminParam) { - UmsAdmin umsAdmin = new UmsAdmin(); - BeanUtils.copyProperties(umsAdminParam, umsAdmin); - umsAdmin.setCreateTime(new Date()); - umsAdmin.setStatus(1); - //查询是否有相同用户名的用户 - UmsAdminExample example = new UmsAdminExample(); - example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername()); - List umsAdminList = adminMapper.selectByExample(example); - if (umsAdminList.size() > 0) { - return null; - } - //将密码进行加密操作 - String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); - umsAdmin.setPassword(encodePassword); - adminMapper.insert(umsAdmin); - return umsAdmin; + public List getResourceList() { + return resourceList; } @Override public String login(String username, String password) { String token = null; try { - UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UserDetails userDetails = getAdminByUsername(username); + if(userDetails==null){ + return token; + } if (!passwordEncoder.matches(password, userDetails.getPassword())) { throw new BadCredentialsException("密码不正确"); } @@ -89,14 +109,8 @@ public String login(String username, String password) { SecurityContextHolder.getContext().setAuthentication(authentication); token = jwtTokenUtil.generateToken(userDetails); } catch (AuthenticationException e) { - LOGGER.warn("登录异常:{}", e.getMessage()); + log.warn("登录异常:{}", e.getMessage()); } return token; } - - - @Override - public List getPermissionList(Long adminId) { - return adminRoleRelationDao.getPermissionList(adminId); - } } diff --git a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java index 06378693..6c6aeb7f 100644 --- a/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java +++ b/mall-tiny/src/main/java/com/macro/mall/tiny/service/impl/UmsMemberServiceImpl.java @@ -1,5 +1,6 @@ package com.macro.mall.tiny.service.impl; +import cn.hutool.core.util.StrUtil; import com.macro.mall.tiny.common.api.CommonResult; import com.macro.mall.tiny.service.RedisService; import com.macro.mall.tiny.service.UmsMemberService; @@ -11,8 +12,10 @@ import java.util.Random; /** - * 会员管理Service实现类 - * Created by macro on 2018/8/3. + * @auther macrozheng + * @description 会员管理Service实现类 + * @date 2018/8/3 + * @github https://github.com/macrozheng */ @Service public class UmsMemberServiceImpl implements UmsMemberService { @@ -40,10 +43,10 @@ public CommonResult generateAuthCode(String telephone) { //对输入的验证码进行校验 @Override public CommonResult verifyAuthCode(String telephone, String authCode) { - if (StringUtils.isEmpty(authCode)) { + if (StrUtil.isEmpty(authCode)) { return CommonResult.failed("请输入验证码"); } - String realAuthCode = redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); + String realAuthCode = (String) redisService.get(REDIS_KEY_PREFIX_AUTH_CODE + telephone); boolean result = authCode.equals(realAuthCode); if (result) { return CommonResult.success(null, "验证码校验成功"); diff --git a/mall-tiny/src/main/resources/application.yml b/mall-tiny/src/main/resources/application.yml index e41fa94c..c1f805c5 100644 --- a/mall-tiny/src/main/resources/application.yml +++ b/mall-tiny/src/main/resources/application.yml @@ -6,41 +6,54 @@ spring: url: jdbc:mysql://localhost:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root + servlet: + multipart: + enabled: true #开 启文件上传 + max-file-size: 10MB # 限制文件上传大小为10M + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引(默认为0) port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码(默认为空) - jedis: + lettuce: pool: - max-active: 8 # 连接池最大连接数(使用负值表示没有限制) - max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-idle: 8 # 连接池中的最大空闲连接 - min-idle: 0 # 连接池中的最小空闲连接 - timeout: 3000ms # 连接超时时间(毫秒) + max-active: 8 # 连接池最大连接数 + max-idle: 8 # 连接池最大空闲连接数 + min-idle: 0 # 连接池最小空闲连接数 + max-wait: -1ms # 连接池最大阻塞等待时间,负值表示没有限制 data: elasticsearch: repositories: - enabled: true - cluster-nodes: 127.0.0.1:9300 # es的连接地址及端口号 - cluster-name: elasticsearch # es集群的名称 + enabled: true # 开启ES仓库配置,自动为仓库接口生成实现类 mongodb: - host: localhost # mongodb的连接地址 - port: 27017 # mongodb的连接端口号 - database: mall-port # mongodb的连接的数据库 + host: localhost # MongoDB的连接地址 + port: 27017 # MongoDB的连接端口号 + database: mall-port # MongoDB的连接的数据库 + elasticsearch: + uris: http://localhost:9200 # ES的连接地址及端口号 rabbitmq: - host: localhost # rabbitmq的连接地址 - port: 5672 # rabbitmq的连接端口号 - virtual-host: /mall # rabbitmq的虚拟host - username: mall # rabbitmq的用户名 - password: mall # rabbitmq的密码 - publisher-confirms: true #如果对异步消息需要回调必须设置为true + host: localhost + port: 5672 + virtual-host: /mall + username: mall + password: mall + publisher-returns: true # 消息发送到队列确认 + publisher-confirm-type: simple # 消息发送到交换器确认 mybatis: mapper-locations: - - classpath:mapper/*.xml + - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml +minio: + endpoint: http://localhost:9000 # MinIO服务所在地址 + bucketName: mall # 存储桶名称 + accessKey: minioadmin # 访问的key + secretKey: minioadmin # 访问的秘钥 + # 自定义redis key redis: key: @@ -51,21 +64,27 @@ redis: # 自定义jwt key jwt: - tokenHeader: Authorization #JWT存储的请求头 - secret: mySecret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) - tokenHead: Bearer #JWT负载中拿到开头 + tokenHeader: Authorization # JWT存储的请求头 + secret: mySecret # JWT加解密使用的密钥 + expiration: 604800 # JWT的超期限时间(60*60*24) + tokenHead: Bearer # JWT负载中拿到开头 -# OSS相关配置信息 -aliyun: - oss: - endpoint: oss-cn-shenzhen.aliyuncs.com # oss对外服务的访问域名 - accessKeyId: test # 访问身份验证中用到用户标识 - accessKeySecret: test # 用户用于加密签名字符串和oss用来验证签名字符串的密钥 - bucketName: macro-oss # oss的存储空间 - policy: - expire: 300 # 签名有效期(S) - maxSize: 10 # 上传文件大小(M) - callback: http://localhost:8080/aliyun/oss/callback # 文件上传成功后的回调地址 - dir: - prefix: mall/images/ # 上传文件夹路径前缀 +secure: + ignored: + urls: # 安全路径白名单 + - /swagger-ui/ + - /swagger-resources/** + - /**/v2/api-docs + - /**/*.html + - /**/*.js + - /**/*.css + - /**/*.png + - /favicon.ico + - /actuator/** + - /druid/** + - /admin/** + - /esProduct/** + - /member/readHistory/** + - /order/** + - /minio/** + - /sso/** \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml index 51b5436b..8d47261a 100644 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml +++ b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml @@ -221,74 +221,74 @@ update pms_brand - - id = #{record.id,jdbcType=BIGINT}, + + id = #{row.id,jdbcType=BIGINT}, - - name = #{record.name,jdbcType=VARCHAR}, + + name = #{row.name,jdbcType=VARCHAR}, - - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, + + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, - - sort = #{record.sort,jdbcType=INTEGER}, + + sort = #{row.sort,jdbcType=INTEGER}, - - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, + + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, - - show_status = #{record.showStatus,jdbcType=INTEGER}, + + show_status = #{row.showStatus,jdbcType=INTEGER}, - - product_count = #{record.productCount,jdbcType=INTEGER}, + + product_count = #{row.productCount,jdbcType=INTEGER}, - - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, + + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, - - logo = #{record.logo,jdbcType=VARCHAR}, + + logo = #{row.logo,jdbcType=VARCHAR}, - - big_pic = #{record.bigPic,jdbcType=VARCHAR}, + + big_pic = #{row.bigPic,jdbcType=VARCHAR}, - - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR}, + + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}, - + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR}, - brand_story = #{record.brandStory,jdbcType=LONGVARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR}, + brand_story = #{row.brandStory,jdbcType=LONGVARCHAR} + update pms_brand - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - first_letter = #{record.firstLetter,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - factory_status = #{record.factoryStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_comment_count = #{record.productCommentCount,jdbcType=INTEGER}, - logo = #{record.logo,jdbcType=VARCHAR}, - big_pic = #{record.bigPic,jdbcType=VARCHAR} - + set id = #{row.id,jdbcType=BIGINT}, + name = #{row.name,jdbcType=VARCHAR}, + first_letter = #{row.firstLetter,jdbcType=VARCHAR}, + sort = #{row.sort,jdbcType=INTEGER}, + factory_status = #{row.factoryStatus,jdbcType=INTEGER}, + show_status = #{row.showStatus,jdbcType=INTEGER}, + product_count = #{row.productCount,jdbcType=INTEGER}, + product_comment_count = #{row.productCommentCount,jdbcType=INTEGER}, + logo = #{row.logo,jdbcType=VARCHAR}, + big_pic = #{row.bigPic,jdbcType=VARCHAR} + diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeCategoryMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeCategoryMapper.xml deleted file mode 100644 index 7a846654..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeCategoryMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, attribute_count, param_count - - - - - delete from pms_product_attribute_category - where id = #{id,jdbcType=BIGINT} - - - delete from pms_product_attribute_category - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_product_attribute_category (name, attribute_count, param_count - ) - values (#{name,jdbcType=VARCHAR}, #{attributeCount,jdbcType=INTEGER}, #{paramCount,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into pms_product_attribute_category - - - name, - - - attribute_count, - - - param_count, - - - - - #{name,jdbcType=VARCHAR}, - - - #{attributeCount,jdbcType=INTEGER}, - - - #{paramCount,jdbcType=INTEGER}, - - - - - - update pms_product_attribute_category - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - attribute_count = #{record.attributeCount,jdbcType=INTEGER}, - - - param_count = #{record.paramCount,jdbcType=INTEGER}, - - - - - - - - update pms_product_attribute_category - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - attribute_count = #{record.attributeCount,jdbcType=INTEGER}, - param_count = #{record.paramCount,jdbcType=INTEGER} - - - - - - update pms_product_attribute_category - - - name = #{name,jdbcType=VARCHAR}, - - - attribute_count = #{attributeCount,jdbcType=INTEGER}, - - - param_count = #{paramCount,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_product_attribute_category - set name = #{name,jdbcType=VARCHAR}, - attribute_count = #{attributeCount,jdbcType=INTEGER}, - param_count = #{paramCount,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeMapper.xml deleted file mode 100644 index f84149ba..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeMapper.xml +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, product_attribute_category_id, name, select_type, input_type, input_list, sort, - filter_type, search_type, related_status, hand_add_status, type - - - - - delete from pms_product_attribute - where id = #{id,jdbcType=BIGINT} - - - delete from pms_product_attribute - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_product_attribute (product_attribute_category_id, name, - select_type, input_type, input_list, - sort, filter_type, search_type, - related_status, hand_add_status, type - ) - values (#{productAttributeCategoryId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, - #{selectType,jdbcType=INTEGER}, #{inputType,jdbcType=INTEGER}, #{inputList,jdbcType=VARCHAR}, - #{sort,jdbcType=INTEGER}, #{filterType,jdbcType=INTEGER}, #{searchType,jdbcType=INTEGER}, - #{relatedStatus,jdbcType=INTEGER}, #{handAddStatus,jdbcType=INTEGER}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into pms_product_attribute - - - product_attribute_category_id, - - - name, - - - select_type, - - - input_type, - - - input_list, - - - sort, - - - filter_type, - - - search_type, - - - related_status, - - - hand_add_status, - - - type, - - - - - #{productAttributeCategoryId,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{selectType,jdbcType=INTEGER}, - - - #{inputType,jdbcType=INTEGER}, - - - #{inputList,jdbcType=VARCHAR}, - - - #{sort,jdbcType=INTEGER}, - - - #{filterType,jdbcType=INTEGER}, - - - #{searchType,jdbcType=INTEGER}, - - - #{relatedStatus,jdbcType=INTEGER}, - - - #{handAddStatus,jdbcType=INTEGER}, - - - #{type,jdbcType=INTEGER}, - - - - - - update pms_product_attribute - - - id = #{record.id,jdbcType=BIGINT}, - - - product_attribute_category_id = #{record.productAttributeCategoryId,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - select_type = #{record.selectType,jdbcType=INTEGER}, - - - input_type = #{record.inputType,jdbcType=INTEGER}, - - - input_list = #{record.inputList,jdbcType=VARCHAR}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - filter_type = #{record.filterType,jdbcType=INTEGER}, - - - search_type = #{record.searchType,jdbcType=INTEGER}, - - - related_status = #{record.relatedStatus,jdbcType=INTEGER}, - - - hand_add_status = #{record.handAddStatus,jdbcType=INTEGER}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update pms_product_attribute - set id = #{record.id,jdbcType=BIGINT}, - product_attribute_category_id = #{record.productAttributeCategoryId,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - select_type = #{record.selectType,jdbcType=INTEGER}, - input_type = #{record.inputType,jdbcType=INTEGER}, - input_list = #{record.inputList,jdbcType=VARCHAR}, - sort = #{record.sort,jdbcType=INTEGER}, - filter_type = #{record.filterType,jdbcType=INTEGER}, - search_type = #{record.searchType,jdbcType=INTEGER}, - related_status = #{record.relatedStatus,jdbcType=INTEGER}, - hand_add_status = #{record.handAddStatus,jdbcType=INTEGER}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update pms_product_attribute - - - product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - select_type = #{selectType,jdbcType=INTEGER}, - - - input_type = #{inputType,jdbcType=INTEGER}, - - - input_list = #{inputList,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=INTEGER}, - - - filter_type = #{filterType,jdbcType=INTEGER}, - - - search_type = #{searchType,jdbcType=INTEGER}, - - - related_status = #{relatedStatus,jdbcType=INTEGER}, - - - hand_add_status = #{handAddStatus,jdbcType=INTEGER}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_product_attribute - set product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - select_type = #{selectType,jdbcType=INTEGER}, - input_type = #{inputType,jdbcType=INTEGER}, - input_list = #{inputList,jdbcType=VARCHAR}, - sort = #{sort,jdbcType=INTEGER}, - filter_type = #{filterType,jdbcType=INTEGER}, - search_type = #{searchType,jdbcType=INTEGER}, - related_status = #{relatedStatus,jdbcType=INTEGER}, - hand_add_status = #{handAddStatus,jdbcType=INTEGER}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeValueMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeValueMapper.xml deleted file mode 100644 index d2e8d217..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductAttributeValueMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, product_id, product_attribute_id, value - - - - - delete from pms_product_attribute_value - where id = #{id,jdbcType=BIGINT} - - - delete from pms_product_attribute_value - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_product_attribute_value (product_id, product_attribute_id, value - ) - values (#{productId,jdbcType=BIGINT}, #{productAttributeId,jdbcType=BIGINT}, #{value,jdbcType=VARCHAR} - ) - - - - SELECT LAST_INSERT_ID() - - insert into pms_product_attribute_value - - - product_id, - - - product_attribute_id, - - - value, - - - - - #{productId,jdbcType=BIGINT}, - - - #{productAttributeId,jdbcType=BIGINT}, - - - #{value,jdbcType=VARCHAR}, - - - - - - update pms_product_attribute_value - - - id = #{record.id,jdbcType=BIGINT}, - - - product_id = #{record.productId,jdbcType=BIGINT}, - - - product_attribute_id = #{record.productAttributeId,jdbcType=BIGINT}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - - - - - - update pms_product_attribute_value - set id = #{record.id,jdbcType=BIGINT}, - product_id = #{record.productId,jdbcType=BIGINT}, - product_attribute_id = #{record.productAttributeId,jdbcType=BIGINT}, - value = #{record.value,jdbcType=VARCHAR} - - - - - - update pms_product_attribute_value - - - product_id = #{productId,jdbcType=BIGINT}, - - - product_attribute_id = #{productAttributeId,jdbcType=BIGINT}, - - - value = #{value,jdbcType=VARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_product_attribute_value - set product_id = #{productId,jdbcType=BIGINT}, - product_attribute_id = #{productAttributeId,jdbcType=BIGINT}, - value = #{value,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductCategoryMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductCategoryMapper.xml deleted file mode 100644 index 3559dd80..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductCategoryMapper.xml +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, parent_id, name, level, product_count, product_unit, nav_status, show_status, - sort, icon, keywords - - - description - - - - - - delete from pms_product_category - where id = #{id,jdbcType=BIGINT} - - - delete from pms_product_category - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_product_category (parent_id, name, level, - product_count, product_unit, nav_status, - show_status, sort, icon, - keywords, description) - values (#{parentId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{level,jdbcType=INTEGER}, - #{productCount,jdbcType=INTEGER}, #{productUnit,jdbcType=VARCHAR}, #{navStatus,jdbcType=INTEGER}, - #{showStatus,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, #{icon,jdbcType=VARCHAR}, - #{keywords,jdbcType=VARCHAR}, #{description,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_product_category - - - parent_id, - - - name, - - - level, - - - product_count, - - - product_unit, - - - nav_status, - - - show_status, - - - sort, - - - icon, - - - keywords, - - - description, - - - - - #{parentId,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{level,jdbcType=INTEGER}, - - - #{productCount,jdbcType=INTEGER}, - - - #{productUnit,jdbcType=VARCHAR}, - - - #{navStatus,jdbcType=INTEGER}, - - - #{showStatus,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - #{icon,jdbcType=VARCHAR}, - - - #{keywords,jdbcType=VARCHAR}, - - - #{description,jdbcType=LONGVARCHAR}, - - - - - - update pms_product_category - - - id = #{record.id,jdbcType=BIGINT}, - - - parent_id = #{record.parentId,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - level = #{record.level,jdbcType=INTEGER}, - - - product_count = #{record.productCount,jdbcType=INTEGER}, - - - product_unit = #{record.productUnit,jdbcType=VARCHAR}, - - - nav_status = #{record.navStatus,jdbcType=INTEGER}, - - - show_status = #{record.showStatus,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - keywords = #{record.keywords,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_product_category - set id = #{record.id,jdbcType=BIGINT}, - parent_id = #{record.parentId,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - level = #{record.level,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_unit = #{record.productUnit,jdbcType=VARCHAR}, - nav_status = #{record.navStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER}, - icon = #{record.icon,jdbcType=VARCHAR}, - keywords = #{record.keywords,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=LONGVARCHAR} - - - - - - update pms_product_category - set id = #{record.id,jdbcType=BIGINT}, - parent_id = #{record.parentId,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - level = #{record.level,jdbcType=INTEGER}, - product_count = #{record.productCount,jdbcType=INTEGER}, - product_unit = #{record.productUnit,jdbcType=VARCHAR}, - nav_status = #{record.navStatus,jdbcType=INTEGER}, - show_status = #{record.showStatus,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER}, - icon = #{record.icon,jdbcType=VARCHAR}, - keywords = #{record.keywords,jdbcType=VARCHAR} - - - - - - update pms_product_category - - - parent_id = #{parentId,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - level = #{level,jdbcType=INTEGER}, - - - product_count = #{productCount,jdbcType=INTEGER}, - - - product_unit = #{productUnit,jdbcType=VARCHAR}, - - - nav_status = #{navStatus,jdbcType=INTEGER}, - - - show_status = #{showStatus,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - keywords = #{keywords,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_product_category - set parent_id = #{parentId,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - level = #{level,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_unit = #{productUnit,jdbcType=VARCHAR}, - nav_status = #{navStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER}, - icon = #{icon,jdbcType=VARCHAR}, - keywords = #{keywords,jdbcType=VARCHAR}, - description = #{description,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_product_category - set parent_id = #{parentId,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - level = #{level,jdbcType=INTEGER}, - product_count = #{productCount,jdbcType=INTEGER}, - product_unit = #{productUnit,jdbcType=VARCHAR}, - nav_status = #{navStatus,jdbcType=INTEGER}, - show_status = #{showStatus,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER}, - icon = #{icon,jdbcType=VARCHAR}, - keywords = #{keywords,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductMapper.xml deleted file mode 100644 index 319724ec..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/PmsProductMapper.xml +++ /dev/null @@ -1,903 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, brand_id, product_category_id, feight_template_id, product_attribute_category_id, - name, pic, product_sn, delete_status, publish_status, new_status, recommand_status, - verify_status, sort, sale, price, promotion_price, gift_growth, gift_point, use_point_limit, - sub_title, original_price, stock, low_stock, unit, weight, preview_status, service_ids, - keywords, note, album_pics, detail_title, promotion_start_time, promotion_end_time, - promotion_per_limit, promotion_type, brand_name, product_category_name - - - description, detail_desc, detail_html, detail_mobile_html - - - - - - delete from pms_product - where id = #{id,jdbcType=BIGINT} - - - delete from pms_product - - - - - - - SELECT LAST_INSERT_ID() - - insert into pms_product (brand_id, product_category_id, feight_template_id, - product_attribute_category_id, name, pic, - product_sn, delete_status, publish_status, - new_status, recommand_status, verify_status, - sort, sale, price, - promotion_price, gift_growth, gift_point, - use_point_limit, sub_title, original_price, - stock, low_stock, unit, - weight, preview_status, service_ids, - keywords, note, album_pics, - detail_title, promotion_start_time, promotion_end_time, - promotion_per_limit, promotion_type, brand_name, - product_category_name, description, detail_desc, - detail_html, detail_mobile_html) - values (#{brandId,jdbcType=BIGINT}, #{productCategoryId,jdbcType=BIGINT}, #{feightTemplateId,jdbcType=BIGINT}, - #{productAttributeCategoryId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{pic,jdbcType=VARCHAR}, - #{productSn,jdbcType=VARCHAR}, #{deleteStatus,jdbcType=INTEGER}, #{publishStatus,jdbcType=INTEGER}, - #{newStatus,jdbcType=INTEGER}, #{recommandStatus,jdbcType=INTEGER}, #{verifyStatus,jdbcType=INTEGER}, - #{sort,jdbcType=INTEGER}, #{sale,jdbcType=INTEGER}, #{price,jdbcType=DECIMAL}, - #{promotionPrice,jdbcType=DECIMAL}, #{giftGrowth,jdbcType=INTEGER}, #{giftPoint,jdbcType=INTEGER}, - #{usePointLimit,jdbcType=INTEGER}, #{subTitle,jdbcType=VARCHAR}, #{originalPrice,jdbcType=DECIMAL}, - #{stock,jdbcType=INTEGER}, #{lowStock,jdbcType=INTEGER}, #{unit,jdbcType=VARCHAR}, - #{weight,jdbcType=DECIMAL}, #{previewStatus,jdbcType=INTEGER}, #{serviceIds,jdbcType=VARCHAR}, - #{keywords,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, #{albumPics,jdbcType=VARCHAR}, - #{detailTitle,jdbcType=VARCHAR}, #{promotionStartTime,jdbcType=TIMESTAMP}, #{promotionEndTime,jdbcType=TIMESTAMP}, - #{promotionPerLimit,jdbcType=INTEGER}, #{promotionType,jdbcType=INTEGER}, #{brandName,jdbcType=VARCHAR}, - #{productCategoryName,jdbcType=VARCHAR}, #{description,jdbcType=LONGVARCHAR}, #{detailDesc,jdbcType=LONGVARCHAR}, - #{detailHtml,jdbcType=LONGVARCHAR}, #{detailMobileHtml,jdbcType=LONGVARCHAR}) - - - - SELECT LAST_INSERT_ID() - - insert into pms_product - - - brand_id, - - - product_category_id, - - - feight_template_id, - - - product_attribute_category_id, - - - name, - - - pic, - - - product_sn, - - - delete_status, - - - publish_status, - - - new_status, - - - recommand_status, - - - verify_status, - - - sort, - - - sale, - - - price, - - - promotion_price, - - - gift_growth, - - - gift_point, - - - use_point_limit, - - - sub_title, - - - original_price, - - - stock, - - - low_stock, - - - unit, - - - weight, - - - preview_status, - - - service_ids, - - - keywords, - - - note, - - - album_pics, - - - detail_title, - - - promotion_start_time, - - - promotion_end_time, - - - promotion_per_limit, - - - promotion_type, - - - brand_name, - - - product_category_name, - - - description, - - - detail_desc, - - - detail_html, - - - detail_mobile_html, - - - - - #{brandId,jdbcType=BIGINT}, - - - #{productCategoryId,jdbcType=BIGINT}, - - - #{feightTemplateId,jdbcType=BIGINT}, - - - #{productAttributeCategoryId,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{pic,jdbcType=VARCHAR}, - - - #{productSn,jdbcType=VARCHAR}, - - - #{deleteStatus,jdbcType=INTEGER}, - - - #{publishStatus,jdbcType=INTEGER}, - - - #{newStatus,jdbcType=INTEGER}, - - - #{recommandStatus,jdbcType=INTEGER}, - - - #{verifyStatus,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - #{sale,jdbcType=INTEGER}, - - - #{price,jdbcType=DECIMAL}, - - - #{promotionPrice,jdbcType=DECIMAL}, - - - #{giftGrowth,jdbcType=INTEGER}, - - - #{giftPoint,jdbcType=INTEGER}, - - - #{usePointLimit,jdbcType=INTEGER}, - - - #{subTitle,jdbcType=VARCHAR}, - - - #{originalPrice,jdbcType=DECIMAL}, - - - #{stock,jdbcType=INTEGER}, - - - #{lowStock,jdbcType=INTEGER}, - - - #{unit,jdbcType=VARCHAR}, - - - #{weight,jdbcType=DECIMAL}, - - - #{previewStatus,jdbcType=INTEGER}, - - - #{serviceIds,jdbcType=VARCHAR}, - - - #{keywords,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{albumPics,jdbcType=VARCHAR}, - - - #{detailTitle,jdbcType=VARCHAR}, - - - #{promotionStartTime,jdbcType=TIMESTAMP}, - - - #{promotionEndTime,jdbcType=TIMESTAMP}, - - - #{promotionPerLimit,jdbcType=INTEGER}, - - - #{promotionType,jdbcType=INTEGER}, - - - #{brandName,jdbcType=VARCHAR}, - - - #{productCategoryName,jdbcType=VARCHAR}, - - - #{description,jdbcType=LONGVARCHAR}, - - - #{detailDesc,jdbcType=LONGVARCHAR}, - - - #{detailHtml,jdbcType=LONGVARCHAR}, - - - #{detailMobileHtml,jdbcType=LONGVARCHAR}, - - - - - - update pms_product - - - id = #{record.id,jdbcType=BIGINT}, - - - brand_id = #{record.brandId,jdbcType=BIGINT}, - - - product_category_id = #{record.productCategoryId,jdbcType=BIGINT}, - - - feight_template_id = #{record.feightTemplateId,jdbcType=BIGINT}, - - - product_attribute_category_id = #{record.productAttributeCategoryId,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - pic = #{record.pic,jdbcType=VARCHAR}, - - - product_sn = #{record.productSn,jdbcType=VARCHAR}, - - - delete_status = #{record.deleteStatus,jdbcType=INTEGER}, - - - publish_status = #{record.publishStatus,jdbcType=INTEGER}, - - - new_status = #{record.newStatus,jdbcType=INTEGER}, - - - recommand_status = #{record.recommandStatus,jdbcType=INTEGER}, - - - verify_status = #{record.verifyStatus,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - sale = #{record.sale,jdbcType=INTEGER}, - - - price = #{record.price,jdbcType=DECIMAL}, - - - promotion_price = #{record.promotionPrice,jdbcType=DECIMAL}, - - - gift_growth = #{record.giftGrowth,jdbcType=INTEGER}, - - - gift_point = #{record.giftPoint,jdbcType=INTEGER}, - - - use_point_limit = #{record.usePointLimit,jdbcType=INTEGER}, - - - sub_title = #{record.subTitle,jdbcType=VARCHAR}, - - - original_price = #{record.originalPrice,jdbcType=DECIMAL}, - - - stock = #{record.stock,jdbcType=INTEGER}, - - - low_stock = #{record.lowStock,jdbcType=INTEGER}, - - - unit = #{record.unit,jdbcType=VARCHAR}, - - - weight = #{record.weight,jdbcType=DECIMAL}, - - - preview_status = #{record.previewStatus,jdbcType=INTEGER}, - - - service_ids = #{record.serviceIds,jdbcType=VARCHAR}, - - - keywords = #{record.keywords,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - album_pics = #{record.albumPics,jdbcType=VARCHAR}, - - - detail_title = #{record.detailTitle,jdbcType=VARCHAR}, - - - promotion_start_time = #{record.promotionStartTime,jdbcType=TIMESTAMP}, - - - promotion_end_time = #{record.promotionEndTime,jdbcType=TIMESTAMP}, - - - promotion_per_limit = #{record.promotionPerLimit,jdbcType=INTEGER}, - - - promotion_type = #{record.promotionType,jdbcType=INTEGER}, - - - brand_name = #{record.brandName,jdbcType=VARCHAR}, - - - product_category_name = #{record.productCategoryName,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=LONGVARCHAR}, - - - detail_desc = #{record.detailDesc,jdbcType=LONGVARCHAR}, - - - detail_html = #{record.detailHtml,jdbcType=LONGVARCHAR}, - - - detail_mobile_html = #{record.detailMobileHtml,jdbcType=LONGVARCHAR}, - - - - - - - - update pms_product - set id = #{record.id,jdbcType=BIGINT}, - brand_id = #{record.brandId,jdbcType=BIGINT}, - product_category_id = #{record.productCategoryId,jdbcType=BIGINT}, - feight_template_id = #{record.feightTemplateId,jdbcType=BIGINT}, - product_attribute_category_id = #{record.productAttributeCategoryId,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - pic = #{record.pic,jdbcType=VARCHAR}, - product_sn = #{record.productSn,jdbcType=VARCHAR}, - delete_status = #{record.deleteStatus,jdbcType=INTEGER}, - publish_status = #{record.publishStatus,jdbcType=INTEGER}, - new_status = #{record.newStatus,jdbcType=INTEGER}, - recommand_status = #{record.recommandStatus,jdbcType=INTEGER}, - verify_status = #{record.verifyStatus,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER}, - sale = #{record.sale,jdbcType=INTEGER}, - price = #{record.price,jdbcType=DECIMAL}, - promotion_price = #{record.promotionPrice,jdbcType=DECIMAL}, - gift_growth = #{record.giftGrowth,jdbcType=INTEGER}, - gift_point = #{record.giftPoint,jdbcType=INTEGER}, - use_point_limit = #{record.usePointLimit,jdbcType=INTEGER}, - sub_title = #{record.subTitle,jdbcType=VARCHAR}, - original_price = #{record.originalPrice,jdbcType=DECIMAL}, - stock = #{record.stock,jdbcType=INTEGER}, - low_stock = #{record.lowStock,jdbcType=INTEGER}, - unit = #{record.unit,jdbcType=VARCHAR}, - weight = #{record.weight,jdbcType=DECIMAL}, - preview_status = #{record.previewStatus,jdbcType=INTEGER}, - service_ids = #{record.serviceIds,jdbcType=VARCHAR}, - keywords = #{record.keywords,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - album_pics = #{record.albumPics,jdbcType=VARCHAR}, - detail_title = #{record.detailTitle,jdbcType=VARCHAR}, - promotion_start_time = #{record.promotionStartTime,jdbcType=TIMESTAMP}, - promotion_end_time = #{record.promotionEndTime,jdbcType=TIMESTAMP}, - promotion_per_limit = #{record.promotionPerLimit,jdbcType=INTEGER}, - promotion_type = #{record.promotionType,jdbcType=INTEGER}, - brand_name = #{record.brandName,jdbcType=VARCHAR}, - product_category_name = #{record.productCategoryName,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=LONGVARCHAR}, - detail_desc = #{record.detailDesc,jdbcType=LONGVARCHAR}, - detail_html = #{record.detailHtml,jdbcType=LONGVARCHAR}, - detail_mobile_html = #{record.detailMobileHtml,jdbcType=LONGVARCHAR} - - - - - - update pms_product - set id = #{record.id,jdbcType=BIGINT}, - brand_id = #{record.brandId,jdbcType=BIGINT}, - product_category_id = #{record.productCategoryId,jdbcType=BIGINT}, - feight_template_id = #{record.feightTemplateId,jdbcType=BIGINT}, - product_attribute_category_id = #{record.productAttributeCategoryId,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - pic = #{record.pic,jdbcType=VARCHAR}, - product_sn = #{record.productSn,jdbcType=VARCHAR}, - delete_status = #{record.deleteStatus,jdbcType=INTEGER}, - publish_status = #{record.publishStatus,jdbcType=INTEGER}, - new_status = #{record.newStatus,jdbcType=INTEGER}, - recommand_status = #{record.recommandStatus,jdbcType=INTEGER}, - verify_status = #{record.verifyStatus,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER}, - sale = #{record.sale,jdbcType=INTEGER}, - price = #{record.price,jdbcType=DECIMAL}, - promotion_price = #{record.promotionPrice,jdbcType=DECIMAL}, - gift_growth = #{record.giftGrowth,jdbcType=INTEGER}, - gift_point = #{record.giftPoint,jdbcType=INTEGER}, - use_point_limit = #{record.usePointLimit,jdbcType=INTEGER}, - sub_title = #{record.subTitle,jdbcType=VARCHAR}, - original_price = #{record.originalPrice,jdbcType=DECIMAL}, - stock = #{record.stock,jdbcType=INTEGER}, - low_stock = #{record.lowStock,jdbcType=INTEGER}, - unit = #{record.unit,jdbcType=VARCHAR}, - weight = #{record.weight,jdbcType=DECIMAL}, - preview_status = #{record.previewStatus,jdbcType=INTEGER}, - service_ids = #{record.serviceIds,jdbcType=VARCHAR}, - keywords = #{record.keywords,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - album_pics = #{record.albumPics,jdbcType=VARCHAR}, - detail_title = #{record.detailTitle,jdbcType=VARCHAR}, - promotion_start_time = #{record.promotionStartTime,jdbcType=TIMESTAMP}, - promotion_end_time = #{record.promotionEndTime,jdbcType=TIMESTAMP}, - promotion_per_limit = #{record.promotionPerLimit,jdbcType=INTEGER}, - promotion_type = #{record.promotionType,jdbcType=INTEGER}, - brand_name = #{record.brandName,jdbcType=VARCHAR}, - product_category_name = #{record.productCategoryName,jdbcType=VARCHAR} - - - - - - update pms_product - - - brand_id = #{brandId,jdbcType=BIGINT}, - - - product_category_id = #{productCategoryId,jdbcType=BIGINT}, - - - feight_template_id = #{feightTemplateId,jdbcType=BIGINT}, - - - product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - pic = #{pic,jdbcType=VARCHAR}, - - - product_sn = #{productSn,jdbcType=VARCHAR}, - - - delete_status = #{deleteStatus,jdbcType=INTEGER}, - - - publish_status = #{publishStatus,jdbcType=INTEGER}, - - - new_status = #{newStatus,jdbcType=INTEGER}, - - - recommand_status = #{recommandStatus,jdbcType=INTEGER}, - - - verify_status = #{verifyStatus,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - sale = #{sale,jdbcType=INTEGER}, - - - price = #{price,jdbcType=DECIMAL}, - - - promotion_price = #{promotionPrice,jdbcType=DECIMAL}, - - - gift_growth = #{giftGrowth,jdbcType=INTEGER}, - - - gift_point = #{giftPoint,jdbcType=INTEGER}, - - - use_point_limit = #{usePointLimit,jdbcType=INTEGER}, - - - sub_title = #{subTitle,jdbcType=VARCHAR}, - - - original_price = #{originalPrice,jdbcType=DECIMAL}, - - - stock = #{stock,jdbcType=INTEGER}, - - - low_stock = #{lowStock,jdbcType=INTEGER}, - - - unit = #{unit,jdbcType=VARCHAR}, - - - weight = #{weight,jdbcType=DECIMAL}, - - - preview_status = #{previewStatus,jdbcType=INTEGER}, - - - service_ids = #{serviceIds,jdbcType=VARCHAR}, - - - keywords = #{keywords,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - album_pics = #{albumPics,jdbcType=VARCHAR}, - - - detail_title = #{detailTitle,jdbcType=VARCHAR}, - - - promotion_start_time = #{promotionStartTime,jdbcType=TIMESTAMP}, - - - promotion_end_time = #{promotionEndTime,jdbcType=TIMESTAMP}, - - - promotion_per_limit = #{promotionPerLimit,jdbcType=INTEGER}, - - - promotion_type = #{promotionType,jdbcType=INTEGER}, - - - brand_name = #{brandName,jdbcType=VARCHAR}, - - - product_category_name = #{productCategoryName,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=LONGVARCHAR}, - - - detail_desc = #{detailDesc,jdbcType=LONGVARCHAR}, - - - detail_html = #{detailHtml,jdbcType=LONGVARCHAR}, - - - detail_mobile_html = #{detailMobileHtml,jdbcType=LONGVARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update pms_product - set brand_id = #{brandId,jdbcType=BIGINT}, - product_category_id = #{productCategoryId,jdbcType=BIGINT}, - feight_template_id = #{feightTemplateId,jdbcType=BIGINT}, - product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - pic = #{pic,jdbcType=VARCHAR}, - product_sn = #{productSn,jdbcType=VARCHAR}, - delete_status = #{deleteStatus,jdbcType=INTEGER}, - publish_status = #{publishStatus,jdbcType=INTEGER}, - new_status = #{newStatus,jdbcType=INTEGER}, - recommand_status = #{recommandStatus,jdbcType=INTEGER}, - verify_status = #{verifyStatus,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER}, - sale = #{sale,jdbcType=INTEGER}, - price = #{price,jdbcType=DECIMAL}, - promotion_price = #{promotionPrice,jdbcType=DECIMAL}, - gift_growth = #{giftGrowth,jdbcType=INTEGER}, - gift_point = #{giftPoint,jdbcType=INTEGER}, - use_point_limit = #{usePointLimit,jdbcType=INTEGER}, - sub_title = #{subTitle,jdbcType=VARCHAR}, - original_price = #{originalPrice,jdbcType=DECIMAL}, - stock = #{stock,jdbcType=INTEGER}, - low_stock = #{lowStock,jdbcType=INTEGER}, - unit = #{unit,jdbcType=VARCHAR}, - weight = #{weight,jdbcType=DECIMAL}, - preview_status = #{previewStatus,jdbcType=INTEGER}, - service_ids = #{serviceIds,jdbcType=VARCHAR}, - keywords = #{keywords,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - album_pics = #{albumPics,jdbcType=VARCHAR}, - detail_title = #{detailTitle,jdbcType=VARCHAR}, - promotion_start_time = #{promotionStartTime,jdbcType=TIMESTAMP}, - promotion_end_time = #{promotionEndTime,jdbcType=TIMESTAMP}, - promotion_per_limit = #{promotionPerLimit,jdbcType=INTEGER}, - promotion_type = #{promotionType,jdbcType=INTEGER}, - brand_name = #{brandName,jdbcType=VARCHAR}, - product_category_name = #{productCategoryName,jdbcType=VARCHAR}, - description = #{description,jdbcType=LONGVARCHAR}, - detail_desc = #{detailDesc,jdbcType=LONGVARCHAR}, - detail_html = #{detailHtml,jdbcType=LONGVARCHAR}, - detail_mobile_html = #{detailMobileHtml,jdbcType=LONGVARCHAR} - where id = #{id,jdbcType=BIGINT} - - - update pms_product - set brand_id = #{brandId,jdbcType=BIGINT}, - product_category_id = #{productCategoryId,jdbcType=BIGINT}, - feight_template_id = #{feightTemplateId,jdbcType=BIGINT}, - product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - pic = #{pic,jdbcType=VARCHAR}, - product_sn = #{productSn,jdbcType=VARCHAR}, - delete_status = #{deleteStatus,jdbcType=INTEGER}, - publish_status = #{publishStatus,jdbcType=INTEGER}, - new_status = #{newStatus,jdbcType=INTEGER}, - recommand_status = #{recommandStatus,jdbcType=INTEGER}, - verify_status = #{verifyStatus,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER}, - sale = #{sale,jdbcType=INTEGER}, - price = #{price,jdbcType=DECIMAL}, - promotion_price = #{promotionPrice,jdbcType=DECIMAL}, - gift_growth = #{giftGrowth,jdbcType=INTEGER}, - gift_point = #{giftPoint,jdbcType=INTEGER}, - use_point_limit = #{usePointLimit,jdbcType=INTEGER}, - sub_title = #{subTitle,jdbcType=VARCHAR}, - original_price = #{originalPrice,jdbcType=DECIMAL}, - stock = #{stock,jdbcType=INTEGER}, - low_stock = #{lowStock,jdbcType=INTEGER}, - unit = #{unit,jdbcType=VARCHAR}, - weight = #{weight,jdbcType=DECIMAL}, - preview_status = #{previewStatus,jdbcType=INTEGER}, - service_ids = #{serviceIds,jdbcType=VARCHAR}, - keywords = #{keywords,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - album_pics = #{albumPics,jdbcType=VARCHAR}, - detail_title = #{detailTitle,jdbcType=VARCHAR}, - promotion_start_time = #{promotionStartTime,jdbcType=TIMESTAMP}, - promotion_end_time = #{promotionEndTime,jdbcType=TIMESTAMP}, - promotion_per_limit = #{promotionPerLimit,jdbcType=INTEGER}, - promotion_type = #{promotionType,jdbcType=INTEGER}, - brand_name = #{brandName,jdbcType=VARCHAR}, - product_category_name = #{productCategoryName,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml deleted file mode 100644 index c91d5cb4..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.xml +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, username, password, icon, email, nick_name, note, create_time, login_time, status - - - - - delete from ums_admin - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin (username, password, icon, - email, nick_name, note, - create_time, login_time, status - ) - values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, - #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin - - - username, - - - password, - - - icon, - - - email, - - - nick_name, - - - note, - - - create_time, - - - login_time, - - - status, - - - - - #{username,jdbcType=VARCHAR}, - - - #{password,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{nickName,jdbcType=VARCHAR}, - - - #{note,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{loginTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - - - - update ums_admin - - - id = #{record.id,jdbcType=BIGINT}, - - - username = #{record.username,jdbcType=VARCHAR}, - - - password = #{record.password,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - email = #{record.email,jdbcType=VARCHAR}, - - - nick_name = #{record.nickName,jdbcType=VARCHAR}, - - - note = #{record.note,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - - - - - - update ums_admin - set id = #{record.id,jdbcType=BIGINT}, - username = #{record.username,jdbcType=VARCHAR}, - password = #{record.password,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - email = #{record.email,jdbcType=VARCHAR}, - nick_name = #{record.nickName,jdbcType=VARCHAR}, - note = #{record.note,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - login_time = #{record.loginTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER} - - - - - - update ums_admin - - - username = #{username,jdbcType=VARCHAR}, - - - password = #{password,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - nick_name = #{nickName,jdbcType=VARCHAR}, - - - note = #{note,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - login_time = #{loginTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin - set username = #{username,jdbcType=VARCHAR}, - password = #{password,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - email = #{email,jdbcType=VARCHAR}, - nick_name = #{nickName,jdbcType=VARCHAR}, - note = #{note,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - login_time = #{loginTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml deleted file mode 100644 index c827fa7a..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminPermissionRelationMapper.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, permission_id, type - - - - - delete from ums_admin_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation (admin_id, permission_id, type - ) - values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_permission_relation - - - admin_id, - - - permission_id, - - - type, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - #{type,jdbcType=INTEGER}, - - - - - - update ums_admin_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - type = #{record.type,jdbcType=INTEGER}, - - - - - - - - update ums_admin_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT}, - type = #{record.type,jdbcType=INTEGER} - - - - - - update ums_admin_permission_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - type = #{type,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_permission_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT}, - type = #{type,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml deleted file mode 100644 index b8ed4900..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsAdminRoleRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, admin_id, role_id - - - - - delete from ums_admin_role_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_admin_role_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation (admin_id, role_id) - values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_admin_role_relation - - - admin_id, - - - role_id, - - - - - #{adminId,jdbcType=BIGINT}, - - - #{roleId,jdbcType=BIGINT}, - - - - - - update ums_admin_role_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - admin_id = #{record.adminId,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - - - - - - update ums_admin_role_relation - set id = #{record.id,jdbcType=BIGINT}, - admin_id = #{record.adminId,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT} - - - - - - update ums_admin_role_relation - - - admin_id = #{adminId,jdbcType=BIGINT}, - - - role_id = #{roleId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_admin_role_relation - set admin_id = #{adminId,jdbcType=BIGINT}, - role_id = #{roleId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml deleted file mode 100644 index 581e53c0..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsPermissionMapper.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, pid, name, value, icon, type, uri, status, create_time, sort - - - - - delete from ums_permission - where id = #{id,jdbcType=BIGINT} - - - delete from ums_permission - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission (pid, name, value, - icon, type, uri, status, - create_time, sort) - values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, - #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_permission - - - pid, - - - name, - - - value, - - - icon, - - - type, - - - uri, - - - status, - - - create_time, - - - sort, - - - - - #{pid,jdbcType=BIGINT}, - - - #{name,jdbcType=VARCHAR}, - - - #{value,jdbcType=VARCHAR}, - - - #{icon,jdbcType=VARCHAR}, - - - #{type,jdbcType=INTEGER}, - - - #{uri,jdbcType=VARCHAR}, - - - #{status,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_permission - - - id = #{record.id,jdbcType=BIGINT}, - - - pid = #{record.pid,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - value = #{record.value,jdbcType=VARCHAR}, - - - icon = #{record.icon,jdbcType=VARCHAR}, - - - type = #{record.type,jdbcType=INTEGER}, - - - uri = #{record.uri,jdbcType=VARCHAR}, - - - status = #{record.status,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_permission - set id = #{record.id,jdbcType=BIGINT}, - pid = #{record.pid,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - value = #{record.value,jdbcType=VARCHAR}, - icon = #{record.icon,jdbcType=VARCHAR}, - type = #{record.type,jdbcType=INTEGER}, - uri = #{record.uri,jdbcType=VARCHAR}, - status = #{record.status,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_permission - - - pid = #{pid,jdbcType=BIGINT}, - - - name = #{name,jdbcType=VARCHAR}, - - - value = #{value,jdbcType=VARCHAR}, - - - icon = #{icon,jdbcType=VARCHAR}, - - - type = #{type,jdbcType=INTEGER}, - - - uri = #{uri,jdbcType=VARCHAR}, - - - status = #{status,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_permission - set pid = #{pid,jdbcType=BIGINT}, - name = #{name,jdbcType=VARCHAR}, - value = #{value,jdbcType=VARCHAR}, - icon = #{icon,jdbcType=VARCHAR}, - type = #{type,jdbcType=INTEGER}, - uri = #{uri,jdbcType=VARCHAR}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml deleted file mode 100644 index 7f4596bf..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRoleMapper.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, name, description, admin_count, create_time, status, sort - - - - - delete from ums_role - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role (name, description, admin_count, - create_time, status, sort - ) - values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, - #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER} - ) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role - - - name, - - - description, - - - admin_count, - - - create_time, - - - status, - - - sort, - - - - - #{name,jdbcType=VARCHAR}, - - - #{description,jdbcType=VARCHAR}, - - - #{adminCount,jdbcType=INTEGER}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{status,jdbcType=INTEGER}, - - - #{sort,jdbcType=INTEGER}, - - - - - - update ums_role - - - id = #{record.id,jdbcType=BIGINT}, - - - name = #{record.name,jdbcType=VARCHAR}, - - - description = #{record.description,jdbcType=VARCHAR}, - - - admin_count = #{record.adminCount,jdbcType=INTEGER}, - - - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - - - status = #{record.status,jdbcType=INTEGER}, - - - sort = #{record.sort,jdbcType=INTEGER}, - - - - - - - - update ums_role - set id = #{record.id,jdbcType=BIGINT}, - name = #{record.name,jdbcType=VARCHAR}, - description = #{record.description,jdbcType=VARCHAR}, - admin_count = #{record.adminCount,jdbcType=INTEGER}, - create_time = #{record.createTime,jdbcType=TIMESTAMP}, - status = #{record.status,jdbcType=INTEGER}, - sort = #{record.sort,jdbcType=INTEGER} - - - - - - update ums_role - - - name = #{name,jdbcType=VARCHAR}, - - - description = #{description,jdbcType=VARCHAR}, - - - admin_count = #{adminCount,jdbcType=INTEGER}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - status = #{status,jdbcType=INTEGER}, - - - sort = #{sort,jdbcType=INTEGER}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role - set name = #{name,jdbcType=VARCHAR}, - description = #{description,jdbcType=VARCHAR}, - admin_count = #{adminCount,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - status = #{status,jdbcType=INTEGER}, - sort = #{sort,jdbcType=INTEGER} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml b/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml deleted file mode 100644 index f9d17043..00000000 --- a/mall-tiny/src/main/resources/com/macro/mall/tiny/mbg/mapper/UmsRolePermissionRelationMapper.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - - - - - - - - - id, role_id, permission_id - - - - - delete from ums_role_permission_relation - where id = #{id,jdbcType=BIGINT} - - - delete from ums_role_permission_relation - - - - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation (role_id, permission_id) - values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}) - - - - SELECT LAST_INSERT_ID() - - insert into ums_role_permission_relation - - - role_id, - - - permission_id, - - - - - #{roleId,jdbcType=BIGINT}, - - - #{permissionId,jdbcType=BIGINT}, - - - - - - update ums_role_permission_relation - - - id = #{record.id,jdbcType=BIGINT}, - - - role_id = #{record.roleId,jdbcType=BIGINT}, - - - permission_id = #{record.permissionId,jdbcType=BIGINT}, - - - - - - - - update ums_role_permission_relation - set id = #{record.id,jdbcType=BIGINT}, - role_id = #{record.roleId,jdbcType=BIGINT}, - permission_id = #{record.permissionId,jdbcType=BIGINT} - - - - - - update ums_role_permission_relation - - - role_id = #{roleId,jdbcType=BIGINT}, - - - permission_id = #{permissionId,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=BIGINT} - - - update ums_role_permission_relation - set role_id = #{roleId,jdbcType=BIGINT}, - permission_id = #{permissionId,jdbcType=BIGINT} - where id = #{id,jdbcType=BIGINT} - - \ No newline at end of file diff --git a/mall-tiny-elasticsearch/src/main/resources/mapper/EsProductDao.xml b/mall-tiny/src/main/resources/dao/EsProductDao.xml similarity index 100% rename from mall-tiny-elasticsearch/src/main/resources/mapper/EsProductDao.xml rename to mall-tiny/src/main/resources/dao/EsProductDao.xml diff --git a/mall-tiny/src/main/resources/generatorConfig.xml b/mall-tiny/src/main/resources/generatorConfig.xml index c546ce1d..d025afec 100644 --- a/mall-tiny/src/main/resources/generatorConfig.xml +++ b/mall-tiny/src/main/resources/generatorConfig.xml @@ -6,39 +6,44 @@ + + + + + - - - + + + - + - + - + - + - + - +
diff --git a/mall-tiny/src/main/resources/logback-spring.xml b/mall-tiny/src/main/resources/logback-spring.xml deleted file mode 100644 index dd8b5950..00000000 --- a/mall-tiny/src/main/resources/logback-spring.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - ${APP_NAME} - - - - ${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log - 30 - - - ${FILE_LOG_PATTERN} - - - - - - localhost:4560 - - - - - - - - diff --git a/mall-tiny/src/main/resources/mapper/EsProductDao.xml b/mall-tiny/src/main/resources/mapper/EsProductDao.xml deleted file mode 100644 index fe3fff5b..00000000 --- a/mall-tiny/src/main/resources/mapper/EsProductDao.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mall-tiny/src/main/resources/mapper/UmsAdminRoleRelationDao.xml b/mall-tiny/src/main/resources/mapper/UmsAdminRoleRelationDao.xml deleted file mode 100644 index 0e435b58..00000000 --- a/mall-tiny/src/main/resources/mapper/UmsAdminRoleRelationDao.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mall-tiny/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java b/mall-tiny/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java index fa6880cf..6b95c21d 100644 --- a/mall-tiny/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java +++ b/mall-tiny/src/test/java/com/macro/mall/tiny/MallTinyApplicationTests.java @@ -1,11 +1,9 @@ package com.macro.mall.tiny; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -@RunWith(SpringRunner.class) @SpringBootTest public class MallTinyApplicationTests { diff --git a/pom.xml b/pom.xml index 1ba1a655..c77ff5ef 100644 --- a/pom.xml +++ b/pom.xml @@ -5,11 +5,87 @@ 4.0.0 com.macro.mall - mall-learning + mall-learning-teach 1.0-SNAPSHOT + pom + mall-tiny-boot + mall-tiny-mybatis + mall-tiny-generator + mall-tiny-lombok + mall-tiny-hutool + mall-tiny-swagger + mall-tiny-redis + mall-tiny-rabbit + mall-tiny-01 + mall-tiny-02 + mall-tiny-03 + mall-tiny-04 + mall-tiny-05 + mall-tiny-06 + mall-tiny-07 + mall-tiny-08 mall-tiny + mall-tiny-stream + mall-tiny-docker + mall-tiny-plus + + org.springframework.boot + spring-boot-starter-parent + 2.7.5 + + + + + UTF-8 + UTF-8 + 1.8 + true + http://192.168.3.101:2375 + 0.40.2 + 1.4.5 + 5.3.2 + 1.2.14 + 5.8.9 + 3.0.0 + 1.6.0 + 1.6.0 + 1.4.1 + 3.5.10 + 2.2.2 + 8.0.29 + 2.7.5 + 0.9.1 + 2.5.0 + 7.2 + 8.4.5 + 2.3.1 + + + + + + javax.xml.bind + jaxb-api + ${jaxb-api.version} + + + + + + + aliyunmaven + aliyun + https://maven.aliyun.com/repository/public + + + central2 + central2 + https://repo1.maven.org/maven2/ + + + \ No newline at end of file